我是 Laravel 5.3 护照(oauth2 服务器)的新手
如果有这样的工作,请告诉我。
假设有4台服务器(Apps)。 1. Laravel Passport 进行身份验证(App01、App02、App03、App04) 2. App01 3. 应用02 4.App03
第 1 步到第 4 步是连续的,让我知道所有处理都可以使用 Laravel passport
1.用户 John Doe 访问并登录 App01。 Laravel 5.3 passport 为他创建身份验证 token 。
用户 John Doe 访问 App02 并自动登录 (SSO)
用户 John doe 访问 App03 并需要 ID 和密码,他手动输入 App02 和 App03 相同的 ID、密码并成功登录。
当用户注销时,所有应用程序(App02、App03)都会注销。
感谢您宝贵的回复。
最佳答案
听起来您应该让您的 App01 成为身份提供者(OAuth 服务器),App02、App03 和 App04 将重定向到 App01 以获取短期 token 。所以这三个应用程序必须具有 OAuth 客户端功能 - 能够
您正在查看 OAuth2 授权代码流:https://www.digitalocean.com/community/tutorials/an-introduction-to-oauth-2
如果您不需要第 4 条要求 - 同时在所有地方注销,您就可以只依赖 JWT token 的嵌入式数据。
您的 App01(Laravel Passport)颁发的每个 JWT token 都已经包含用户 ID 和 token 过期等信息。此外,如果您将 App01 的公钥添加到 App02、App03 和 App04 上,它们可以 100% 确定 token 有效——无需向 App01 发出请求。但如果用户稍后在 App01 上注销,显然没有办法说它发生了。
关于php - Laravel 5.3 护照的单点登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41176939/