【问题标题】:Always Unauthorize Jwt-auth Laravel总是不授权 Jwt-auth Laravel
【发布时间】:2018-09-21 13:58:17
【问题描述】:

我有AuthController

public function register(Request $request)
{
    $user = UserSistem::create([
        'username' => $request->username,
        'nama' => $request->nama,
        'email' => $request->email,
        'password_secret' => bcrypt($request->password)
    ]);

    $token = auth()->login($user);

    return $this->respondWithToken($token);
}

public function login(Request $request)
{
    $credentials = $request->only(['email', 'password']);

    if (!$token = auth()->attempt($credentials)) {
        return response()->json(['error' => 'Unauthorized'], 401);
    }

    return $this->respondWithToken($token);
}

protected function respondWithToken($token)
{
    return response()->json([
        'access_token' => $token,
        'token_type' => 'bearer'
    ]);
}

register 函数有效,但不适用于login,我应该在register 函数中使用password 列而不是password_secret,因为我尝试使用password 列并且工作正常吗?

如何在register 函数的有效负载上使用password_secret 列?

【问题讨论】:

    标签: laravel jwt-auth


    【解决方案1】:

    您正在使用 JWT,然后将凭据传递给 JWT 对象

    public function login(Request $request)
    {
      $credentials = $request->only(['email', 'password']);
       try {
        if (!$token =  JWTAuth::attempt($credentials)) {
        return response()->json(['error' => 'Unauthorized'], 401);
    
    } catch (JWTException $e) {
                // something went wrong
    return response()->json(['error' => 'could_not_create_token'], 500);
            }
    }
    
    return $this->respondWithToken($token);
    }
    

    【讨论】:

    • 我的意思是,我怎样才能使用password_secret 而不是password
    • 您可以在数据库中将密码_secret更改为密码,也可以在登录表单中将密码字段更改为password_secret。
    • 我的当前数据库中有一个带有password_secret 字段的表用户,我无法更改它。我的意思是,这是我客户的要求。
    • 好的,然后你可以在登录表单中用 password_secret 替换密码
    • 你的意思是我应该在参数中使用password_secret
    猜你喜欢
    • 2018-04-08
    • 2021-06-08
    • 2015-11-05
    • 1970-01-01
    • 2018-01-07
    • 1970-01-01
    • 2016-01-03
    • 2019-08-29
    • 2018-05-19
    相关资源
    最近更新 更多