Laravel Passport:仅使用用户名登录,无需密码

安德烈亚斯·亨特(Andreas Hunter)

在我的项目中,我将通过发送短信确认码来验证用户电话号码。确认后,我必须将登录请求发送到我的laravel应用。Laravel Passport文档中有登录用户的示例请求:

$response = $http->post('http://your-app.com/oauth/token', [
    'form_params' => [
        'grant_type' => 'password',
        'client_id' => 'client-id',
        'client_secret' => 'client-secret',
        'username' => '[email protected]',
        'password' => 'my-password',
        'scope' => '',
    ],
]);

我在这里如何设置为username用户phone并删除password

如果passwordLaravel Passport中的必填字段,则可以从客户端发送任何密码,并在请求用户凭据password之前取消请求用户的attempt权限。但是我必须在哪里输入密码?

我已经厌倦了零钱LoginController但没有工作。

LoginController

protected function validateLogin(Request $request)
{
    $request->validate([
        $this->username() => 'required|string'
    ]);
}

protected function credentials(Request $request)
{
    $params = [
        'password' => '12345678',
    ];
    $request->request->add($params);
    return $request->only($this->username(), 'password');
}

public function username()
{
    return 'phone';
}
Karan Sadana |

用户模型中的usefindForPassport方法。

它以用户名作为参数,并返回用户模型

已经在这里回答

class User extends Authenticatable
{
    use Notifiable, HasApiTokens;

    // Set as username any column from users table
    public function findForPassport($username) 
    {
        $customUsername = 'phone';
        return $this->where($customUsername, $username)->first();
    }
    // Owerride password here
    public function validateForPassportPasswordGrant($password)
    {
        $owerridedPassword = 'password';
        return Hash::check($password, $this->password);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用用户名的Laravel身份验证不区分大小写

如何通过自定义用户名列使用Laravel Passport

在Laravel 5.4中允许使用用户名或电子邮件登录

在Spring Security中仅使用用户名登录

Laravel 5 db:种子用户名和密码,但登录时不进行身份验证

如何在没有公钥的情况下登录ssh?仅使用用户名和密码

Laravel-使用用户名,电子邮件或电话登录

使用cURL使用用户名和密码登录到Gitlab

laravel中仅使用用户名(id)进行身份验证

Firebase-如何仅使用用户名(不输入密码/电子邮件)实施登录?

Microsoft信息保护SDK:使用用户名/密码登录

Flutter和Firebase-如何仅使用用户名和密码登录

如何允许客户端使用用户名和密码登录Samba共享?

laravel 4:如何在没有用户名和密码的情况下登录用户

Laravel使用电子邮件代替用户名登录

Laravel无法检查用户名和密码

Amazon Cognito使用用户名和密码登录用户

使用用户名而不是电子邮件进行身份验证laravel 5.2

如何在laravel中使用用户名登录

curl 使用用户名密码和登录按钮登录网站

PHP/Laravel:使用用户名作为 url 标识符

Laravel Auth 通过公司名称、用户名和密码登录

Laravel 5 使用 Attempt 方法使用用户名或电子邮件自定义登录

Laravel - 无法使用用户名在 SMTP 服务器上进行身份验证

如何仅使用用户名和密码使用 python 访问 Microsoft One Drive

Laravel - 使用电话和用户名登录,FILTER_VALIDATE_EMAIL 问题

使用电子邮件或用户名登录 Fortify Laravel 8

使用多个用户名选择的 Laravel 登录

如何创建登录但使用用户名或电子邮件和密码