【发布时间】:2022-01-02 04:39:57
【问题描述】:
我有一个使用 SAML2 进行身份验证的网站。我根本不管理 SSO,而是我的站点是需要 SSO 身份验证才能进入的门户的一部分。我目前有从 request->server 对象获取 SAML 属性的中间件,然后执行各种任务,例如检查它们是否具有从属关系,是否允许这些从属关系等...
这个中间件被添加到内核中,以便它为每个 HTTP 请求运行。我想修改这个中间件以使其更干净,并使用 Laravel 的原生 Auth 外观(我们正在检查是否已设置用户的会话变量以确定用户是否已经登录,而不是 auth-> check(),例如)。
我已经阅读了几篇关于如何绕过 Laravel Breeze 入门套件附带的身份验证并制作自己的教程。没有一个完全符合我需要做的,但概念是一样的:
- 创建模型(使用已有的 User 模型,稍作调整)
- 创建一个服务提供者(创建一个实现 UserProvider 接口的新提供者)
- 创建一个 Guard(创建了一个实现 Guard 接口的新保护)
我可以理解这三件事并做到了,但我不确定如何将它们放在一起。
我更新了我的 config/auth.php 文件以包含新的守卫和提供者:
然后我更新了 App\Providers\AuthServiceProvider 的启动方法以包含我创建的提供程序和保护:
但是现在呢?我想这是我缺少的部分。
谁能帮助我弥补缺失的部分?我正在使用 Laravel 框架 8.73.1。
【问题讨论】:
-
请注意:将您的代码以文本形式发布,最好以代码块形式发布,而不是以图像形式发布。它使阅读尤其是复制变得更加困难,以便尝试或在答案中引用它)
标签: laravel laravel-8 laravel-authentication laravel-authorization