gpt4 book ai didi

php - JWT auth laravel 上的 invalid_credentials

转载 作者:搜寻专家 更新时间:2023-10-31 20:58:27 25 4
gpt4 key购买 nike

我将 jwt-auth 用于带有 laravel 的 auth API 并编写以下代码。

我的注册 API 运行良好,但我的登录 API 返回 invalid_credentials 错误。为什么?

laravel 版本:5.4

public function login(Request $request) {

$credentials = $request->only('username', 'password');

try {
$token = JWTAuth::attempt($credentials);
if (!$token) {
return response()->json(['error' => 'invalid_credentials'], 401);
}
} catch (JWTException $e) {
return response()->json(['error' => 'could_not_create_token'], 400);
}

return response()->json(compact('token'), 200);
}

public function register(Request $request) {

$credentials = $request->only('email', 'username', 'password', 'name');

$validator = Validator::make($credentials, [
'name' => 'required|max:80',
'username' => 'required|max:80|unique:users',
'email' => 'required|email|max:255|unique:users',
'password' => 'required|min:6',
]);

if ($validator->fails()) {
$errors = $validator->errors();
return response()->json(['error' => array(
'name' => $errors->first('name'),
'email' => $errors->first('email'),
'username' => $errors->first('username'),
'password' => bcrypt('password'),
)], 400);
}

$user = User::create([
'name' => $request->name,
'email' => $request->email,
'username' => $request->username,
'password' => $request->password,
]);

$token = JWTAuth::fromUser($user);
return response()->json(compact('token'));
}

最佳答案

使用 email 代替 username。 Laravel 使用 email 列,JWTAuth 也紧随其后。

 $credentials = $request->only('email', 'password');

要将用户名列更改为 username,您需要在 Controller 中的 username 函数中进行更改。

查看 github JWTAuth 中的示例

关于php - JWT auth laravel 上的 invalid_credentials,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50027029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com