Php 不同字段的Laravel自定义身份验证

Php 不同字段的Laravel自定义身份验证,php,laravel,authentication,laravel-5.2,Php,Laravel,Authentication,Laravel 5.2,我的数据库中有一个名为(users\u system)的表,其中包含: 用户id 用户通行证(纯文本) 。。。其他一些领域 我想要的是能够使用这两个字段执行laravel(5.2)身份验证,考虑到(Auth::trust)只处理电子邮件和散列密码 那么这是可能的,如果是,怎么做?您可以检查凭据并手动登录用户: $userSystem = UserSystem::where('user_id', $userId)->where('user_pass', $password)->fi

我的数据库中有一个名为(users\u system)的表,其中包含:

  • 用户id
  • 用户通行证(纯文本)
。。。其他一些领域

我想要的是能够使用这两个字段执行laravel(5.2)身份验证,考虑到
(Auth::trust)
只处理电子邮件和散列密码


那么这是可能的,如果是,怎么做?

您可以检查凭据并手动登录用户:

$userSystem = UserSystem::where('user_id', $userId)->where('user_pass', $password)->first();
if (!is_null($userSystem)) {
    // Manually login user.
    $user = User::find($userId);
    Auth::login($user);
}

但是使用纯文本密码是个糟糕的主意。在真正的应用程序中不应这样做。

您可以检查凭据并手动登录用户:

$userSystem = UserSystem::where('user_id', $userId)->where('user_pass', $password)->first();
if (!is_null($userSystem)) {
    // Manually login user.
    $user = User::find($userId);
    Auth::login($user);
}

但是使用纯文本密码是个糟糕的主意。在真正的应用程序中不应该这样做。

这会导致以下错误参数1传递给Illumb\Auth\SessionGuard::login()必须实现接口Illumb\Contracts\Auth\Authenticatable,nullgiven@BecauseGeek那是因为你用错了身份证或者别的什么。确保
$user=user::find($userId)
获取用户。例如,如果
$userId=5
而您没有具有此ID的用户,它将返回
null
您是对的,我在用户模型中更改了我的表主键,它工作了,但现在我在执行Auth::logout()时遇到了另一个问题;这是:错误消息:ORA-00904:“UPDATED_AT”:无效的标识符位置:52语句:update ums.users_password set memory_token=:p0,UPDATED_AT=:p1其中user_sys_id=:p2我猜这是因为我没有更新AT和memory me token,所以如何修复this@BecauseGeek这个错误与您的问题无关,因此,您应该问另一个问题,并在那里发布所有相关代码。这将给出以下错误参数1传递给Illumb\Auth\SessionGuard::login()必须实现接口Illumb\Contracts\Auth\Authenticatable,nullgiven@BecauseGeek那是因为你用错了身份证或者别的什么。确保
$user=user::find($userId)
获取用户。例如,如果
$userId=5
而您没有具有此ID的用户,它将返回
null
您是对的,我在用户模型中更改了我的表主键,它工作了,但现在我在执行Auth::logout()时遇到了另一个问题;这是:错误消息:ORA-00904:“UPDATED_AT”:无效的标识符位置:52语句:update ums.users_password set memory_token=:p0,UPDATED_AT=:p1其中user_sys_id=:p2我猜这是因为我没有更新AT和memory me token,所以如何修复this@BecauseGeek这个错误与您的问题无关,所以,你应该问另一个问题,并张贴所有相关的代码。