8

Tôi đang cố gắng sử dụng xã hội mùa xuân cho các dịch vụ REST của tôi và ứng dụng di động của tôi.Đăng ký di động với xã hội mùa xuân

Tôi tự hỏi phương pháp tốt nhất là gì.

Tôi đang lên kế hoạch để sử dụng linkedin, google đăng nhập và xác thực mật khẩu bên trong tôi ứng dụng di động. Thông tin đăng nhập xã hội này phải là được kết nối với người dùng trong cơ sở dữ liệu của tôi.

Ứng dụng mùa xuân của tôi sẽ hoạt động như một API cần được bảo mật bằng mã thông báo JWT. Sau đó, ứng dụng dành cho thiết bị di động sẽ sử dụng mã thông báo JWT này để tiêu thụ API.

Trên điện thoại di động của tôi, tôi muốn có khả năng đăng ký/đăng nhập bằng linkedin, facebook hoặc mật khẩu.

Theo như tôi hiểu điện thoại di động đòi hỏi một dòng chảy oauth khác với mô tả trong https://spring.io/guides/tutorials/spring-boot-oauth2/

Có vẻ như nó yêu cầu "Key Proof Mã Exchange" dòng chảy như đã nêu trong: https://auth0.com/docs/api-auth/grant/authorization-code-pkce

Đây có phải là đúng? Tôi không tìm thấy bất kỳ thông tin nào để làm tốt nhất điều này với xã hội mùa xuân và nếu xã hội mùa xuân hỗ trợ trường hợp sử dụng này.

Ai đó có thể chỉ cho tôi đúng hướng không? Tôi chỉ tìm thấy thông tin làm thế nào để làm điều này với ứng dụng trang đơn và không phải với các ứng dụng di động. Cảm ơn rất nhiều trước!

Trả lời

1

Một cách có thể sẽ là

  1. Các ứng dụng di động sử dụng LinkedIn hoặc SDK của Google để làm SSO để lấy một thẻ authN.
  2. Ứng dụng di động chuyển nó tới dịch vụ phụ trợ, sử dụng dịch vụ này để truy xuất chi tiết người dùng (ví dụ: email) từ dịch vụ oauth.
  3. Dịch vụ phụ trợ có thể thực hiện công việc bổ sung về chi tiết người dùng (ví dụ: liên kết với người dùng hiện tại).
  4. Dịch vụ phụ trợ trả lại mã thông báo JWT cho ứng dụng di động, kết thúc SSO.

SSO sẽ có thể trả lại địa chỉ email để bạn liên kết người dùng. Đôi khi bạn cần phải đăng ký xin phép một cách rõ ràng (mà Facebook yêu cầu).

Điểm mấu chốt của cách tiếp cận này là tránh sử dụng hoàn toàn thư viện OAuth2 trong các dịch vụ phụ trợ của bạn vì nó hiện được xử lý trong ứng dụng di động bằng cách sử dụng SDK của nhà cung cấp SSO.

Dòng chảy được tóm tắt trong bản vẽ sau: Mobile SSO Flow

======== được sửa đổi:

Chúng tôi sử dụng phương pháp này để làm Facebook SSO với một ứng dụng di động và nó làm việc rất tốt. Ứng dụng dành cho thiết bị di động đã có trong iOS và dịch vụ phụ trợ Spring Boot.

Thảo luận được hoan nghênh.

+0

Tôi biết đã lâu rồi kể từ khi bạn trả lời bài đăng này, nhưng nếu có thể, bạn có thể cung cấp thêm chi tiết về cách bạn triển khai giải pháp của mình? –

Các vấn đề liên quan