如何在laravel中创建自己的登录方法?

时间:2018-12-20 06:35:31

标签: php laravel laravel-5

我在我的项目中使用护照包。一切正常。我需要自定义功能,可以在其中通过provider_id而不是emailpassword登录。

下面的代码工作正常

$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

有人可以请我指导我,我将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:2)

通过ID验证用户身份

要通过用户ID将用户登录到应用程序中,可以使用loginUsingId方法。此方法接受您想要认证的用户的主密钥:

Auth::loginUsingId(1);

// Login and "remember" the given user...
Auth::loginUsingId(1, true);

Reference

您可以使用相同的方法进行一些更改,也可以根据需要创建自己的自定义登录方法。