首页 > 解决方案 > 社交名流 (SSO) 登录后如何为我的 API 获取 Passport 访问/刷新令牌

问题描述

我很难将 Laravel 护照与 Laravel Socialite 结合起来。我有一个使用护照实现 OAuth2 的 API。API 由 SPA (Nuxt) 使用。SPA 使用密码授予流程使用电子邮件和密码进行“常规”登录。SPA 还提供通过 Google 或 Facebook 登录的选项。社交名流使用 google/facebook 处理登录流程,但我不知道如何在社交名流之后为我的 API 获取访问/刷新令牌。

我不能使用密码授权,因为这需要密码。我可以/应该使用哪种赠款以及出于什么原因?另外,如何在 google/facebook 回调中从我的 API 获取访问/刷新令牌到我的 SPA?SPA -> API 通信是直截了当的,但两种方式的通信需要事件广播(WebSockets)或某种解决方案。

为了澄清:

单点登录流程:

  1. 在 SPA 登录视图中,通过按钮打开 google/facebook 登录
  2. 在谷歌/脸书上登录
  3. 成功时重定向到 API
  4. 处理回调(获取访问/刷新令牌并将其发送到 SPA)。

标签: phplaraveloauth-2.0laravel-passportlaravel-socialite

解决方案


推荐阅读