执行登录时,未创建访问令牌,在日志文件中出现以下错误:
local.ERROR:资源所有者或授权服务器拒绝了该请求。
和
(InvalidArgumentException(code:0):JWT字符串必须在两个点处。
我使用失眠程序发出了一个请求,并且在那里一切正常,访问令牌出现在数据库中
我的函数登录名:
public function login(Request $request)
{
$req = Request::create(route('passport.token'), 'POST', [
'grant_type' => 'password',
'client_id' => 2,
'client_secret' => 'lvDjvx5UgzeYJxQMjjLMSFL3psqXj2iuw2xLL6Yh',
'phone_number' => $request->phone_number,
'password' => $request->password,
]);
$response = app()->handle($req);
if ($response->status() == 400) {
return response()->json([
'message' => 'Н',
]);
} else if ($response->status() == 401) {
return response()->json([
'message' => '',
]);
}
return $response;
}
答案 0 :(得分:0)
尝试此代码:
public function login(Request $request)
{
$req = Request::create(route('passport.token'), 'POST', [
'grant_type' => 'password',
'client_id' => Your client_id,
'client_secret' => 'Your client_secret ',
'username' => $request->username,
'password' => $request->password
]);
$response = app()->handle($req);
if ($response->status() === 400) {
return response()->json([
'message' => 'Н',
]);
}
if ($response->status() === 401) {
return response()->json([
'message' => '',
]);
}
return $response;
}
在模型用户中
public function findForPassport($identifier) {
return $this->where('phone_number', $identifier)->first();
}
答案 1 :(得分:0)
确保数据库中您正在使用的客户端的“ password_client”列为真。
如果它是“ personal_access_token”,则不能提供密码grant_type响应。它们用于获取client_credentials grant_type响应。
您可以在oauth_clients表中找到它。
我希望答案能对您有所帮助