Laravel/Lumen Tymon/JWT 通过电话号码和密码
Posted
技术标签:
【中文标题】Laravel/Lumen Tymon/JWT 通过电话号码和密码【英文标题】:Laravel/Lumen Tymon/JWT by Phone Number and Password 【发布时间】:2021-01-01 18:08:11 【问题描述】:我正在使用 JWT 为我的 API 应用程序创建一个 API 登录。在默认代码中,JWT 使用电子邮件和密码进行身份验证。
public function login(Request $request)
$credentials = $request->only(['email', 'password']);
if (!$token = JWTAuth::attempt($credentials))
return 'Invalid login details';
return $token;
但是现在,我想通过电话/电子邮件和密码更改登录,这意味着,当请求到来时,我会使用 正则表达式 来识别电子邮件或电话。然后,使用 attempt() 函数的凭据。
有什么解决办法吗?提前致谢。
【问题讨论】:
【参考方案1】:您应该可以通过发送电话或电子邮件作为凭据轻松地做到这一点。
if($regexShowsItsAnEmail)
$credentials = $request->only(['email', 'password']); // or simply $credentials = ['email' => $email, 'password' => $password]
elseif($regexShowsItsAPhoneNumber)
$credentials = $request->only(['phone', 'password']); // or simply $credentials = ['phone' => $phone, 'password' => $password]
else
return response()->json(['message' => 'Unauthorized'], 401);
【讨论】:
【参考方案2】:我发现 Request 是 Illuminate\Http\Request;
Request->only()
返回数组。
您可以使用获取或设置值
$credentials["email"]
或 $credentials["password"]
【讨论】:
以上是关于Laravel/Lumen Tymon/JWT 通过电话号码和密码的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 7.0 - tymon/jwt-auth - 检查令牌是不是有效
PHP Laravel 5.7 Tymon/jwt-auth 未安装
tymon/jwt-auth Laravel:无法验证令牌签名