Cách chúng tôi tại Parallels chinh phục Đăng nhập bằng Apple

Cách chúng tôi tại Parallels chinh phục Đăng nhập bằng Apple

Tôi nghĩ nhiều người đã nghe đến Sign In with Apple (viết tắt là SIWA) sau WWDC 2019. Trong bài viết này, tôi sẽ cho bạn biết những cạm bẫy cụ thể mà tôi phải đối mặt khi tích hợp tính năng này vào cổng cấp phép của chúng tôi. Bài viết này thực sự không dành cho những người mới quyết định tìm hiểu SIWA (đối với họ, tôi đã cung cấp một số liên kết giáo dục ở cuối văn bản). Trong tài liệu này, rất có thể, nhiều người sẽ tìm thấy câu trả lời cho những câu hỏi có thể nảy sinh khi tích hợp dịch vụ mới của Apple.

Apple không cho phép chuyển hướng tùy chỉnh

Thực ra, tôi vẫn chưa thấy câu trả lời cho câu hỏi này trên các diễn đàn dành cho nhà phát triển. Vấn đề là thế này: nếu bạn muốn sử dụng API SIWA JS, tức là. không hoạt động thông qua SDK gốc do thiếu cái này vì lý do này hay lý do khác (không phải macOS/iOS hoặc phiên bản cũ của các hệ thống này), thì bạn cần có cổng công cộng của riêng mình, nếu không thì không còn cách nào khác. Bởi vì trên cổng WWDR, ​​bạn cần phải đăng ký và xác nhận rằng bạn là chủ sở hữu tên miền của mình và chỉ trên đó bạn mới có thể đính kèm các chuyển hướng được chấp nhận theo quan điểm của Apple:

Cách chúng tôi tại Parallels chinh phục Đăng nhập bằng Apple

Bạn nên làm gì nếu muốn chặn chuyển hướng trong một ứng dụng? Chúng tôi đã giải quyết vấn đề này cực kỳ đơn giản: chúng tôi đã tạo trên cổng thông tin của mình một danh sách các chuyển hướng có thể chấp nhận được cho các ứng dụng của chúng tôi mà họ đặt hàng trước khi hiển thị trang ủy quyền SIWA. Và chúng tôi chỉ cần chuyển hướng từ cổng đến ứng dụng bằng dữ liệu nhận được từ Apple. Đơn giản và giận dữ.

Sự cố với email

Hãy xem cách chúng tôi giải quyết vấn đề với email của người dùng. Thứ nhất, không có API REST nào cho phép bạn lấy thông tin này từ chương trình phụ trợ - chỉ khách hàng mới nhận được dữ liệu này và có thể truyền nó cùng với mã ủy quyền.

Thứ hai, thông tin về tên và e-mail của người dùng chỉ được truyền một lần đến lần đăng nhập đầu tiên của người dùng vào ứng dụng thông qua Apple, nơi người dùng chọn các tùy chọn để chia sẻ dữ liệu cá nhân của mình.

Bản thân những vấn đề này không nghiêm trọng trực tiếp nếu kết nối với hồ sơ xã hội được tạo thành công trên cổng - ID người dùng giống nhau và được liên kết với ID nhóm - tức là. điều này giống nhau đối với tất cả các ứng dụng tích hợp SIWA của nhóm bạn. Nhưng nếu thông tin đăng nhập được thực hiện thông qua Apple và hơn nữa trên đường dẫn đã xảy ra lỗi và kết nối trên cổng không được tạo, thì tùy chọn duy nhất là gửi người dùng đến appleid.apple.com, ngắt kết nối với ứng dụng và thử lại. Trên thực tế, vấn đề có thể được giải quyết bằng cách viết bài viết KB thích hợp và liên kết tới nó.

Vấn đề khó chịu tiếp theo liên quan đến việc Apple đưa ra một khái niệm mới về proxy e-mail. Trong trường hợp của chúng tôi, nếu người dùng đã truy cập cổng cấp phép bằng xà phòng thật của mình và khi đăng nhập lần đầu thông qua Apple, chọn tùy chọn ẩn e-mail, một tài khoản mới sẽ được đăng ký với email proxy này. mail, rõ ràng là không chứa bất kỳ giấy phép nào, điều này khiến người dùng cuối rơi vào ngõ cụt.

Giải pháp cho vấn đề này khá đơn giản: bởi vì. Nếu ID người dùng giống nhau trong SIWA và không phụ thuộc vào các tùy chọn/ứng dụng đã chọn mà đăng nhập được thực hiện thì chúng tôi chỉ cần sử dụng một tập lệnh đặc biệt để cho phép bạn chuyển kết nối này từ Apple sang tài khoản khác bằng tài khoản thực của người dùng. xà phòng và do đó “khôi phục việc mua hàng của bạn” " Sau quy trình này, người dùng bắt đầu truy cập vào một tài khoản khác trên cổng thông qua SIWA và mọi thứ đều hoạt động chính xác với anh ta.

Không có biểu tượng ứng dụng khi Đăng nhập qua cổng web

Để giải quyết một vấn đề khác, chúng tôi đã liên hệ với đại diện của Apple để làm rõ và chia sẻ kiến ​​thức của mình:

https://forums.developer.apple.com/thread/123054
Cách chúng tôi tại Parallels chinh phục Đăng nhập bằng Apple

Những thứ kia. ý nghĩa như sau: đứng đầu nhóm SIWA m.b. Chỉ ứng dụng macOS/iOS mới được phân phối, trong đó ID dịch vụ cần thiết của các cổng đã được thêm vào. Theo đó, để hiển thị được biểu tượng của ứng dụng chính. các phiên bản được xuất bản trong App Store với phương tiện đã được Apple xác minh. Biểu tượng sẽ được lấy từ đó.

Theo đó, nếu bạn chỉ có một cổng thông tin và không có ứng dụng nào từ App Store thì bạn sẽ không có biểu tượng đẹp nhưng bạn có thể bỏ qua tên ứng dụng - nếu ứng dụng chính không có phương tiện, thông tin này là lấy từ ID dịch vụ mô tả:
Cách chúng tôi tại Parallels chinh phục Đăng nhập bằng Apple
Cách chúng tôi tại Parallels chinh phục Đăng nhập bằng Apple

Số phần tử trong một nhóm SIWA được giới hạn ở 5

Hiện tại không có giải pháp nào cho vấn đề này ngoại trừ việc sử dụng nhiều nhóm, nếu bạn thiếu 6 mã định danh: 1 ứng dụng chính và 5 ứng dụng phụ thuộc thì khi bạn thử đăng ký nhóm tiếp theo, bạn sẽ thấy thông báo này:

Cách chúng tôi tại Parallels chinh phục Đăng nhập bằng Apple

Chúng tôi đã tạo các nhóm cho cổng cấp phép của mình và cho từng ứng dụng tương tác với cổng này. Về các hạn chế về vị trí, chúng tôi đã mở radar với Apple và đang chờ phản hồi của họ.

Liên kết hữu ích

Hữu dụng nhất liên kết, theo ý kiến ​​​​của tôi, theo đó về cơ bản tôi đã làm mọi thứ. Dock bán hữu ích của Apple đây.

Thưởng thức! Các câu hỏi, suy nghĩ, ý tưởng và đề xuất đều được chào đón trong phần bình luận.

Nguồn: www.habr.com

Thêm một lời nhận xét