mysql - 如果account_status = 1,我将如何设置然后我可以登录,否则无法登录?
问题描述
如果account_status = 1,我将如何设置然后我可以登录,否则无法登录?电子邮件、电话和密码必须在那里。这是以下代码
public function login(Request $request){
if(Auth::attempt(['email' => request('email'), 'password' => request('password'),
'account_status'=> request('account_status')])){
$user = Auth::user();
$success['token'] = $user->createToken('MyApp')-> accessToken;
return response()->json(['success' => $success], $this-> successStatus);
}
else if(Auth::attempt(['phone' => request('phone'), 'password' => request('password'),
'account_status'=> request('account_status')])){
$user = Auth::user();
$success['token'] = $user->createToken('MyApp')-> accessToken;
return response()->json(['success' => $success], $this-> successStatus);
}
else{
return response()->json(['error'=>'Unauthorised'], 401);
}
}
解决方案
您的逻辑是正确的,但我从未见过您提到的访问请求变量的方法:
request('email')
请使用以下格式:
$request->input('email')
所以你的代码应该是:
public function login(Request $request){
if(Auth::attempt(['email' => $request->input('email'), 'password' => $request->input('password'),
'account_status'=> $request->input('account_status')])){
$user = Auth::user();
$success['token'] = $user->createToken('MyApp')-> accessToken;
return response()->json(['success' => $success], $this-> successStatus);
}
else if(Auth::attempt(['phone' => $request->input('phone'), 'password' => $request->input('password'),
'account_status'=> $request->input('account_status')])){
$user = Auth::user();
$success['token'] = $user->createToken('MyApp')-> accessToken;
return response()->json(['success' => $success], $this-> successStatus);
}
else{
return response()->json(['error'=>'Unauthorised'], 401);
}
}
我希望它有帮助
推荐阅读
- bazel - Bazel 默认添加 -MD -MF -frandom-seed 标志 - 为什么?
- python - 在 Python 中将包含其他数据类型的 2D 嵌套列表转换为整数
- symfony - 使用 webpack encore 修复本地资源路径
- flutter - 本地通知
- amazon-web-services - AWS ECS - 部署全栈项目的最佳方式(任务定义、集群和服务)
- java - 将 JInputStream 转换为 Base64
- javascript - 来自对象数组的访问 ID
- reactjs - 反应js lodash搜索子数组并想要返回值的计数
- vega-lite - Vega-lite 中的桑基图
- api-platform.com - Api平台demo项目安装问题