【问题标题】:Laravel/Lumen Tymon/JWT by Phone Number and PasswordLaravel/Lumen Tymon/JWT 通过电话号码和密码
【发布时间】: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() 函数的凭据。

有什么解决办法吗?提前致谢。

【问题讨论】:

    标签: php laravel jwt lumen


    【解决方案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"]

      【讨论】:

        猜你喜欢
        • 2017-09-17
        • 2020-07-05
        • 2018-03-03
        • 2020-07-12
        • 2019-04-13
        • 1970-01-01
        • 2021-10-03
        • 2021-08-18
        相关资源
        最近更新 更多