Tôi đang chuyển ứng dụng web phía máy chủ sang ứng dụng JavaScript một trang bằng API RESTful. Hiện tại. người dùng có thể xác thực bằng Facebook, Twitter, Google, v.v. hoặc qua email và mật khẩu. Làm cách nào để cho phép các hình thức xác thực giống nhau chạy trên API RESTful? Tôi đoán nó trông giống như thế này:Xác thực người dùng API bằng cách sử dụng nhà cung cấp Oauth bên thứ ba
- Xác thực với nhà cung cấp ở phía khách hàng.
- Lấy nội dung từ phản hồi Oauth và chuyển nó tới API trên máy chủ của tôi để đổi lấy mã thông báo truy cập.
- Sử dụng xác thực dựa trên mã thông báo cho các cuộc gọi API tiếp theo.
Tôi có đi đúng hướng không? Nếu vậy:
- Có thư viện JS xử lý nhiều nhà cung cấp hay mỗi người sẽ yêu cầu bao gồm một số thứ như JS SDK của Facebook không?
- API của tôi trông như thế nào tạo ra mã thông báo? Cụ thể, tôi cần gì từ nhà cung cấp Oauth và làm cách nào để xác minh nó trên máy chủ?
Cảm ơn, điều này có ý nghĩa từ góc độ kỹ thuật. Tôi đã suy nghĩ từ một góc UX, hy vọng có một số cách để ở trong ứng dụng đơn trang của tôi mà không cần chuyển hướng. Có vẻ như điều đó có thể xảy ra với Facebook bằng cách sử dụng JS SDK của họ, nhưng có lẽ không nói chung hơn. –
Bạn có thể tránh chuyển hướng từ trang của mình bằng cách mở cửa sổ bật lên.Bạn không cần phải chuyển hướng đến điểm cuối REST đăng nhập của bạn từ trang đơn, bạn có thể mở cửa sổ bật lên đến điểm cuối đó và chuyển hướng đến IDP (như facebook) sẽ được thực hiện trong cửa sổ bật lên đó. Khi kết thúc quá trình đăng nhập, bạn phải báo hiệu từ cửa sổ bật lên đến JS trên trang chính của bạn bằng phản hồi và phiên đăng nhập. –
Hoàn hảo! Vì tôi chỉ làm việc trong một cửa sổ duy nhất, tôi đã không nghĩ đến việc liên lạc giữa cửa sổ bật lên và trang. –