php - 如何根据当前经过身份验证的用户动态设置 Laravel 配置?
问题描述
我正在使用 GrahamCampbell 的 Gitlab API 包装器,它具有令牌和方法的配置变量。令牌是用于对 api 进行身份验证的秘密令牌,方法是使用的身份验证类型。我正在使用 oauth,所以我的方法设置为“oauth”。
但是,该令牌要么由请求生成,要么作为加密字符串存储在我的数据库中的 oauth 工作流中的用户模型上
我在哪里可以将该 oauth 令牌输入到用户登录工作流程中的 gitlab 配置中,以允许我代表当前登录的用户向 api 发出请求?
显然,我不能只将配置项设置为 'token' => $user->gitlab_token,因为在大多数 laravel 类存在之前访问配置。
还是我的任何假设都不正确?
解决方案
我认为有多种方法可以做到这一点。我将提供一个替代方案:
当用户通过会话进行身份验证时,该Authenticated
事件被触发,因此您可以侦听此事件并相应地设置令牌。在您的EventServiceProvider
添加中:
Event::listen(Authenticated::class, function (Authenticated $event) {
config([ 'gitlab.token' => $event->user->token ]);
});
这将确保在用户通过身份验证时更新配置。
推荐阅读
- oculus - 已安装 Oculus Go 移动 SDK,缺少 VrSamples
- javascript - React Native - 每次孩子设置状态时渲染更新(我不想)
- c# - 使用 c# 和 sqlserver 保存在 gridview 中输入的数据
- ios - 如何在 iOS swift3 中将模型转换为数组
- python - 获取有关数据类字段的类型信息
- julia - Julia 相当于 movmean(array,window,dims)?
- java - 选择的事务策略需要访问 JTA TransactionManager
- php - 如何使用 PHP 在 JSON 的第一个中添加空数据?
- html - Bootsrap 4 模态在置顶导航栏中不起作用
- mysql - 如果有来自 CURRENT DATE 的任何数据,MySQL 应用 LEFT JOIN