php - Laravel 5.3 护照的单点登录

标签 php laravel laravel-5.3

我是 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 。

  1. 用户 John Doe 访问 App02 并自动登录 (SSO)

  2. 用户 John doe 访问 App03 并需要 ID 和密码,他手动输入 App02 和 App03 相同的 ID、密码并成功登录。

  3. 当用户注销时,所有应用程序(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/

相关文章:

php - Apache 的 Laravel 文件权限

javascript - 如何在 Laravel Mix 中使用全局 JS 变量?

Laravel 无法通过 nginx 获取请求中的参数 header

laravel-5 - api 或 web Laravel 5.3

PHP 页面计数器、数据库驱动 VS 文件 .. 哪个更好?

php - 在 PHP 中调用不同的命名空间或类

php - Google map API 商业搜索

php - Browsershot 不会保存或写入我的 pdf -> 由于某些原因 Chrome 没有写入

laravel - 延迟()通知似乎不起作用

php - 使用 PHP 添加到 MySQL 数据库