我在我的项目中使用护照包。一切正常。我需要自定义功能,可以在其中通过provider_id
而不是email
和password
登录。
下面的代码工作正常
$credentials = request(['email', 'password']);
if(!Auth::attempt($credentials))
return response()->json([
'status' => 'fail',
'message' => 'The given data was invalid.'
], 401);
$user = $request->user();
$tokenResult = $user->createToken('Personal Access Token');
$token = $tokenResult->token;
if ($request->remember_me)
$token->expires_at = Carbon::now()->addWeeks(1);
$token->save();
我希望具有与以下相同的功能
Auth::attempt($credentials)
但是通过provider_id
,我可以将这些输入用于同一用户中
name
provider
provider_id
有人可以请我指导我,我将不胜感激。谢谢。
答案 0 :(得分:2)
通过ID验证用户身份
要通过用户ID将用户登录到应用程序中,可以使用loginUsingId
方法。此方法接受您想要认证的用户的主密钥:
Auth::loginUsingId(1);
// Login and "remember" the given user...
Auth::loginUsingId(1, true);
您可以使用相同的方法进行一些更改,也可以根据需要创建自己的自定义登录方法。