laravel - 如何在 Laravel 6.12 中进行身份验证分类?
问题描述
我正在使用Authentication artisan 命令使用laravel 6.12
php artisan ui vue --auth
我一直在关注https://laraveldaily.com/auth-login-how-to-check-more-than-just-emailpassword/网站。我想知道通过分类(即公司、电子邮件地址和密码)进行身份验证所需的步骤。
当我添加公司名称时,我收到一个副本,它认为这是电子邮件地址。你在哪里改变这个?我收到以下错误。
BadMethodCallException 方法 App\Http\Controllers\Auth\LoginController::company 不存在。
$credentials = $request->only($this->username(), 'password');
$credentials = array_add($credentials, 'company');
作为身份验证过程的一部分,我需要验证公司名称。带有电子邮件、密码和公司。有谁知道如何使用三个身份验证凭据进行身份验证?
use AuthenticatesUsers;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = RouteServiceProvider::HOME;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
} '''
解决方案
注意:您链接的教程显示了使用原始 SQL 查询登录用户的糟糕方法!。请使用更标准的方式。
要使用多个属性登录用户,请在 Controller 方法中执行以下操作:
public function login(Request $request)
{
//... request validation logic
//take only what is needed to verify login
$credentials = request(['company', 'email', 'password']);
//verify login
if (!Auth::attempt($credentials)) {
return response()->json([
'message' => 'Invalid password'
], 401);
}
//Login user, as you're using Vue I assume you use either JWT or Passport
$user = $request->user();
$tokenResult = $user->createToken('Personal Access Token');
$token = $tokenResult->token;
$token->save();
return response()->json([
'access_token' => $tokenResult->accessToken,
'token_type' => 'Bearer',
]);
}
推荐阅读
- reactjs - 如何在 React-Redux 容器中访问 match?
- java - 无法导入 Eclipse 库
- java - 在递归重叠问题中应用 DP 记忆方法时得到错误的结果
- android - 如果有安全问题,它会被 google play console 成功发布吗?
- swift - 无法将“ViewController”类型的值分配给“WKNavigationDelegate”类型?
- java - 线程“主”java.lang.NullPointerException 中的异常以及如何修复它?
- git - 从发布管道推送到本地 Azure DevOps Git
- c# - CS1503 参数 1:无法从“Poc.Core.Player”转换为“Poc.Interfaces.IScheduleable”
- java - 如何在 JAVA 中将字节数组从 BGR24 转换为 JPG?
- javascript - 在javascript中多次执行自定义打字功能时出现问题