laravel - Laravel - How to Login with either email or phone using Laravel resful api
问题描述
In my Laravel-8 restful API application, I am using Laravel Passport.
I have this code in my request rules:
public function rules()
{
return [
'emailOrPhone' => 'required|string',
'password' => 'required|string',
'remember_me' => 'boolean'
];
}
Controller:
public function login(LoginRequest $request)
{
try{
$userCred = User::where('email', $request->emailOrPhone)
->orWhere('mobile_number', $request->emailOrPhone)
->first();
$credentials = request(['email', 'password']);
$credentials['active'] = 1;
$credentials['deleted_at'] = null;
if(!Auth::attempt($credentials))
return response()->json([
'message' => 'Unauthorized'
], 401);
$user = $request->user();
$tokenResult = $user->createToken('iDriver');
$token = $tokenResult->token;
if ($request->remember_me)
$token->expires_at = Carbon::now()->addWeeks(1);
$token->save();
return response()->json([
'access_token' => $tokenResult->accessToken,
'token_type' => 'Bearer',
'expires_at' => Carbon::parse($tokenResult->token->expires_at)->toDateTimeString()
]);
}catch(\Exception $e) {
return $this->error($e->getMessage(), $e->getCode());
}
}
How do I re-write the Controller code, so that users can Login with either email or mobile_number?
Thanks
解决方案
推荐阅读
- hive - 如何将特定数据从 HDFS 加载到 HIVE
- android - 使用改造库时不调用 onResponse 方法
- winforms - 检测键组合 C# Winform
- javascript - Vue 大喊对象未定义,同时它在需要加载它的范围内
- asp.net-core - 优雅关闭:AppDomain.CurrentDomain.ProcessExit 与 appLifetime.ApplicationStopping.Register 有什么区别?
- javascript - Chrome:某些图表出现错误时,将 Highcharts 导出为 svg 格式
- javascript - Javascript 和数据库,特殊符号无法正确显示
- c - 如何将字符串切割成结构数组[C]?
- html - "-" 登录 svg 路径
- google-app-engine - 自动将 Github 提交到 Google AppEngine 版本