如何在 Laravel 审核中更改 Auth Guard?
How to change the Auth Guard in Laravel Auditing?
我已经使用 Laravel 审核插件 (http://www.laravel-auditing.com/docs/3.1) 来记录所有使用不同身份验证系统的模型 changes.Am 但 Laravel 审核
getLoggedInUserId()
使用 laravel 核心一所以需要改变它。我已经分叉了这个插件并直接编辑了它的功能。但如果你有想法与我分享,我想找到另一种方法?
protected function getLoggedInUserId()
{
try {
if (Auth::check()) {
return Auth::user()->getAuthIdentifier();
}
} catch (\Exception $e) {
return;
}
}
不幸的是,直到包的第 4 版,您无法在不修改实际代码的情况下更改用户解析器。
但是,从版本 4 开始,您可以在配置文件中这样做 (config/audit.php
)。
可以通过两种方式设置用户解析器。
作为 Closure
:
return [
'user' = [
'resolver' => function () {
return Auth::check() ? Auth::user()->getAuthIdentifier() : null;
},
],
];
作为 FQCN:
return [
'user' = [
'resolver' => App\User::class,
],
];
TIP: You have to implement the OwenIt\Auditing\Contracts\UserResolver
interface in the App\User
class for this to work.
查看完整文档here。
我已经使用 Laravel 审核插件 (http://www.laravel-auditing.com/docs/3.1) 来记录所有使用不同身份验证系统的模型 changes.Am 但 Laravel 审核
getLoggedInUserId()
使用 laravel 核心一所以需要改变它。我已经分叉了这个插件并直接编辑了它的功能。但如果你有想法与我分享,我想找到另一种方法?
protected function getLoggedInUserId()
{
try {
if (Auth::check()) {
return Auth::user()->getAuthIdentifier();
}
} catch (\Exception $e) {
return;
}
}
不幸的是,直到包的第 4 版,您无法在不修改实际代码的情况下更改用户解析器。
但是,从版本 4 开始,您可以在配置文件中这样做 (config/audit.php
)。
可以通过两种方式设置用户解析器。
作为 Closure
:
return [
'user' = [
'resolver' => function () {
return Auth::check() ? Auth::user()->getAuthIdentifier() : null;
},
],
];
作为 FQCN:
return [
'user' = [
'resolver' => App\User::class,
],
];
TIP: You have to implement the
OwenIt\Auditing\Contracts\UserResolver
interface in theApp\User
class for this to work.
查看完整文档here。