Zez*_*eds 5 laravel laravel-passport
如何结合 Passport 身份验证和普通 Laravel 身份验证?
我希望用户登录 web-middleware 和 api-middleware 的页面。登录路由在 api-middleware 中。目前我已经设置了 Passport 身份验证,它适用于所有 api-middleware 路由。如何让用户也登录到网络中间件?
编辑 #1
我在做什么:
登录代码
$http = new \GuzzleHttp\Client();
try {
$response = $http->post(config('services.passport.login_endpoint'), [
'form_params' => [
'grant_type' => 'password',
'client_id' => config('services.passport.client_id'),
'client_secret' => config('services.passport.client_secret'),
'username' => $args['email'],
'password' => $args['password']
]
]);
$user = User::where('email', $args['email'])->first();
Auth::guard('web')->login($user);
return [
"token" => $response->getBody()->getContents(),
"user" => $user
];
} // ...
Run Code Online (Sandbox Code Playgroud)
在某个网络中间件路线中的某处
return auth()->check() ? "logged in" : "not logged in";
Run Code Online (Sandbox Code Playgroud)
返回“未登录”
如果您需要将现有用户实例登录到您的应用程序中,您可以使用用户实例调用登录方法。
Auth::login($user);
Run Code Online (Sandbox Code Playgroud)
您还可以使用guard()方法:
Auth::guard('web')->login($user);
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅此处的文档:https ://laravel.com/docs/5.8/authentication#authentication-users
| 归档时间: |
|
| 查看次数: |
2598 次 |
| 最近记录: |