登录尝试修改另一列



我希望两个用户使用相同的手机号码和密码,但他们可能有不同的role_id,这是一列(我添加在用户表中(,这个role_id可能根据用户的角色而有不同的值。假设4代表经理,5代表主管。

我希望经理和主管在登录时使用相同的手机号码和密码,有没有办法我可以传递第三个参数(role_id以及mobile_no和密码(,然后laravel登录尝试检查该值,并尝试从数据库登录该凭据。

我知道我们可以添加活动(boolen(列,在那里我们可以传递一个帐户应该是活动的值。但是这里role_id可以有从1开始的任何值。

那么,有没有一种方法可以修改try函数,或者检查where子句以及手机号码、密码和role_id,以便laravel尝试登录与该role_id相关的凭据。

我尝试过,我尝试创建两个具有相同手机号码和密码的用户,laravel没有记录其中任何一个,因为它不知道该登录哪个用户,不同的密码也不适用于相同的手机号码

我使用的是laravel 5.8

您可以使用Authfacade编写自己的身份验证逻辑。查看文档:手动验证用户

因此,您需要从某个地方检索roleid,以知道它应该尝试登录到哪个用户,并且在控制器中,您会有这样的东西:

// This is assuming that you're getting all the info from the form
// You can create your own array and set the information how you want.
$credentials = $request->only('mobile_number', 'password', 'role_id');
if (Auth::attempt($credentials)) {
// Authentication passed
// do what you want when the
// user gives valid credentials
}

请注意,我们还为attempt方法提供了role_id,这意味着它将尝试在数据库中查找mobile_numberpasswordrole_id的匹配项,并检索该用户。

最新更新