Migrate tài khoản đăng nhập bằng Apple

Migrate tài khoản đăng nhập bằng Apple

Tin ngắn hàng ngày dành cho bạn
  • Rust sinh ra để tái định nghĩa nhiều thứ. Trong đó chắc phải kể đến JavaScript. Từ đầu năm đến giờ các công cụ làm từ Rust mà để cho JavaScript dùng đếm sương sương cũng vài ba cái rồi. Mới đây nhất là Oxc.

    Oxc là một công cụ phân tích cú pháp (parser), kiểm tra lỗi (lint), định dạng (formatter), chuyển đổi (transformer), minifier... tất cả đều được viết bằng Rust, trong một công cụ duy nhất.

    Mặc dù vẫn đang trong quá trình xây dựng nhưng thử nhìn điểm hiệu năng của nó so với swc hoặc eslint mà xem 🫣

    » Xem thêm
  • Mấy hôm nay, à mà cũng không hẳn, do sự kiện WWDC vừa rồi nên Apple lại bị dân cư mạng mang ra bàn tán rằng rốt cục thì các tính năng AI của họ đang ở đâu? Trong khi các hãng khác đang lao mình vào việc mang AI lên thiết bị, phần mềm của họ thì Apple lại đang có vẻ... không quan tâm lắm.

    Thậm chí mới đây các nhà nghiên cứu của Apple cho rằng các mô hình LLM sẽ "sụp đổ hoàn toàn về độ chính xác" khi được đưa ra các vấn đề cực kỳ phức tạp. Chỉ ra rằng suy luận chỉ là huyễn hoặc thì ngay lập tức đã có nhiều bài phản bác nghiên cứu này. Một lần nữa cho thấy rằng Apple đang suy nghĩ điều gì với AI trên thiết bị của họ?

    Mình thì nghĩ đơn giản thôi, Apple có vẻ đang gặp khó khăn với việc tạo ra AI cho riêng họ. Tức là khó khăn ngay từ đoạn thu thập dữ liệu để đào tạo rồi. Họ luôn tỏ ra tôn trọng quyền riêng tư của người dùng nên chẳng lẽ lại lên mạng đi xào nấu dữ liệu ở khắp nơi, hoặc "chôm" dữ liệu dưới máy người dùng lên? Chắc chắn, họ cũng không muốn cung cấp thêm dữ liệu người dùng cho các bên thứ 3 như OpenAI.

    Nhưng nhờ những khó khăn này biết đâu họ lại tìm ra được hướng đi mới. Ai cũng chọn phần dễ thì gian khổ để phần cho ai 😁. À mình không phải là "fan" của Apple, chỉ là thấy cái nào phù hợp thì dùng thôi 🤓

    » Xem thêm
  • Người "nhạy cảm" với markdown đó là khi thấy một thư viện tạo khung soạn thảo mới là nhảy ngay vào xem nó có gì mới. Milkdown/milkdown là một ví dụ.

    Xem thử thì thấy ổn phết mọi người ạ. Vài nữa thử tích hợp vào opennotas xem sao. Mang tiếng là ứng dụng ghi chú hỗ trợ markdown cơ mà cái thư viện tiptap nó không chịu làm thêm phần hỗ trợ markdown 😩. Dùng thư viện ngoài thì vẫn chưa ngon cho lắm.

    » Xem thêm

Vấn đề

Vài tuần trước ứng dụng (app) ở công ty mà tôi đang làm việc thực hiện việc chuyển quyền sở hữu ứng dụng trong Apple Store, tức là chuyển từ tài khoản Apple Develop này sang tài khoản khác. Có nhiều việc cần phải làm trước khi chuyển, về cơ bản phải thực hiện lần lượt các công việc trong danh sách họ đưa ra thì mới có thể bắt đầu chuyển quyền sở hữu.

Một trong số đó là Migrate Sign in with Apple users to another team. Tất cả tài khoản người dùng tạo ra bằng việc bấm vào nút "Đăng nhập với Apple" tích hợp trong ứng dụng cần phải thực hiện migrate dữ liệu người dùng. Apple luôn chú trọng đến quyền riêng tư người dùng, thế nên việc chuyển giao ứng dụng sang tài khoản khác cũng cần phải đảm bảo tính riêng tư. Có một vài thông tin bị thay đổi, trong đó quan trọng nhất là apple id (hay còn gọi là sub) và private email.

Khi người dùng bấm vào nút "Đăng nhập với Apple", dữ liệu mà chúng ta lưu lại để định danh họ thường là địa chỉ email và apple id. Trong trường hợp người dùng không lựa chọn chia sẻ địa chỉ email thật thì chỉ có thể lấy được private email. Apple id và email là cần thiết để định danh một người dùng khi họ đăng nhập vào hệ thống, khi chuyển quyền sở hữu, 2 thông tin quan trọng này có nguy cơ bị thay đổi. Nói cách khác, nếu chuyển giao ứng dụng thành công, người dùng trước đó đăng nhập vào hệ thống thì nhận được apple id và private email khác nhau, dữ liệu này không khớp thì rất có thể chúng ta đối xử với họ như một người dùng mới.

Vậy cần phải thực hiện việc migrate này trước khi chuyển giao ứng dụng. Thật may mắn vì Apple có tài liệu hướng dẫn rất chi tiết, chỉ có điều hơi khó đọc, vì vậy bài viết này giúp bạn làm rõ hơn một chút về cách thực hiện.

Migrate tài khoản

Như đã nói Apple có tài liệu hướng dẫn migrate tài khoản, mục đích cuối cùng là lấy được apple id và private email mới để cập nhật vào dữ liệu người dùng đã có trong hệ thống. Gồm có 2 bước như sau.

Bước 1 được thực hiện ở tài khoản đang sở hữu ứng dụng. Mục đích là lấy được một đoạn mã chuyển giao định danh gọi là transfer_sub. Mỗi tài khoản là một mã, sau khi lấy hết, chuyển giao transfer_sub lại cho đội sắp nhận ứng dụng.

Bước 2 được thực hiện ở tài khoản nhận ứng dụng. Mục đích là từ transfer_sub lấy ra được thông tin tài khoản người dùng mới, bao gồm apple id và private email mới.

Trong tài liệu cũng chỉ rất rõ các đầu API cần dùng để thực hiện các bước ở trên. Như vậy chỉ cần viết một đoạn mã thực hiện việc lấy và sử dụng transfer_sub. Cũng tình cờ tôi tìm thấy một kho lưu trữ đã viết lại các API này thành các hàm tương đối rõ ràng. Bạn đọc có thể tham khảo yjiq150/apple-signin-migration-on-app-transfer

Lưu ý cần phải sửa lại các tham số bên trong các hàm beforeAppTransferafterAppTransfer để đảm bảo nó phù hợp với thông tin ứng dụng. Trong quá trình chạy migrate, Apple không nhắc đến giới hạn cuộc gọi (rate/limits) cho các API, cũng như số lần gọi trên cùng một tài khoản. Về phía tôi chạy thực tế thì đúng là không có giới hạn nào cả, các API có thể gọi liên tục với tốc độ rất nhanh, tuy nhiên thi thoảng một vài lần gọi API sẽ bị lỗi, vậy nên cần có cơ chế thử lại hoặc ghi nhật ký (logs) để xử lý các trường hợp này.

Một lưu ý nữa là các API chuyển giao này chỉ khả dụng trong vòng 60 ngày kể từ thời điểm chuyển giao ứng dụng thành công. Nếu quá 60 ngày mà chưa thực hiện việc migrate, bạn phải thực hiện việc chuyển giao lại ứng dụng về tài khoản cũ thì mới có thể migrate lại từ đầu.

Tổng kết

Việc migrate tài khoản "Đăng nhập bằng Apple" là một bước quan trọng khi chuyển quyền sở hữu ứng dụng trong Apple Store để đảm bảo tính liên tục và bảo mật dữ liệu người dùng. Quá trình này chủ yếu xoay quanh hai bước: đầu tiên là lấy mã định danh transfer_sub từ tài khoản hiện tại và sau đó sử dụng mã này để cập nhật thông tin tài khoản người dùng trên tài khoản mới. Mặc dù tài liệu của Apple cung cấp hướng dẫn chi tiết, nhưng việc triển khai thực tế có thể gặp khó khăn với những ai lần đầu tiếp xúc.

Tuy nhiên, cần lưu ý rằng các API này chỉ khả dụng trong vòng 60 ngày kể từ khi chuyển giao ứng dụng, do đó, việc lập kế hoạch và thực hiện kịp thời là rất quan trọng. Ngoài ra, cần chú ý đến cơ chế thử lại và ghi nhật ký để xử lý các lỗi API không mong muốn.

Cao cấp
Hello

Tôi & khao khát "chơi chữ"

Bạn đã thử viết? Và rồi thất bại hoặc chưa ưng ý? Tại 2coffee.dev chúng tôi đã có quãng thời gian chật vật với công việc viết. Đừng nản chí, vì giờ đây chúng tôi đã có cách giúp bạn. Hãy bấm vào để trở thành hội viên ngay!

Bạn đã thử viết? Và rồi thất bại hoặc chưa ưng ý? Tại 2coffee.dev chúng tôi đã có quãng thời gian chật vật với công việc viết. Đừng nản chí, vì giờ đây chúng tôi đã có cách giúp bạn. Hãy bấm vào để trở thành hội viên ngay!

Xem tất cả

Đăng ký nhận thông báo bài viết mới

hoặc
* Bản tin tổng hợp được gửi mỗi 1-2 tuần, huỷ bất cứ lúc nào.

Bình luận (0)

Nội dung bình luận...