使用passport访问令牌获取用户数据-Laravel
我一直在尝试使用访问令牌返回用户数据,但不断出现错误:使用passport访问令牌获取用户数据-Laravel,laravel,laravel-5,jwt,access-token,Laravel,Laravel 5,Jwt,Access Token,我一直在尝试使用访问令牌返回用户数据,但不断出现错误: Invalid payload 我的方法是获取令牌,然后从oauth\u access\u令牌表中查找用户id。我的代码如下: public function authenticateUser($token){ $user_id = DB::table('oauth_access_tokens')->where('id', trim($token))->value('user_id'); $user = \
Invalid payload
我的方法是获取令牌,然后从oauth\u access\u令牌
表中查找用户id。我的代码如下:
public function authenticateUser($token){
$user_id = DB::table('oauth_access_tokens')->where('id', trim($token))->value('user_id');
$user = \App\User::find($user_id);
Auth::login($user, true);
}
令牌如下所示:
eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6IjkyZGU3ZGYyMDcxZjgzMzU5YWUxMmRlYzM4ZGJiM2EyMTk0NzEyYTQ5NmRiNzgwZWJkMDg2Yjc0NThkZjU0NmFlZmU2Yzg0N2Q0Mjc5MDAxIn0.eyJhdWQiOiIxIiwianRpIjoiOTJkZTdkZjIwNzFmODMzNTlhZTEyZGVjMzhkYmIzYTIxOTQ3MTJhNDk2ZGI3ODBlYmQwODZiNzQ1OGRmNTQ2YWVmZTZjODQ3ZDQyNzkwMDEiLCJpYXQiOjE1NzczNzE4MDYsIm5iZiI6MTU3NzM3MTgwNiwiZXhwIjoxNjA4OTk0MjA1LCJzdWIiOiIzMCIsInNjb3BlcyI6W119.Io4xkJYEczbI7rhFD_UKAoe7v_1-RLJXjA6XqGIe2nRAWEgMkg-mokQUiGz41xYVazmDmACDwwYSRr-iTTzwc591NABfxsmMk7OdYkUKb93UTA3JhKClEGSP82y1QrIfm9XTZ0KKDaCKlfKqye1Aobj9zFthQdApegTaK61ReLQa7MzO6EM5fcZ3udsLL3QpKXFuyO6JcPKRauKIbA8oNIKEdadprLWJSeQieIyA8lpYOr453QzgZGgzCwPY1U2RmIbCzqyNQD_L5264-ix1503KxgPt4F_Cl82WXm7tNsZKNwE-vGKhCc2CcgAgTV1lIj7ItDf2KpDh_Jt96Uiv2eJ3OtXYvuOTErz9mNnQ1T38hxQmKDh8XlG3f7JgIWWzN6m8ItBV1KyGZi0-vn2HXetkZTNIyfJV8E5-RaGUzIKX7RejWd5BVaqFw0OjDYPeliVOaZzfcZCRnPDSJBGwf7YqJrRXP61LMasn_ZJ-i8G5JIaQx2vdmfYgE41O5F9fE5uEF5-mIV979RbnswL6CJsSGmmUMzC7mPhqL6HtPu2hMTnfHbKY0-efqtzZ5I2TBQU6ODM37RFN5TEljoEgBFG6kAImkGDy4QFH5uqt6V7-ZFxvrKQzQozgezSgA6ITF1sRb7yWfI-9rF7sYE_aKu3r1_KRr4UJLoZqFyvGPP0
这不是我应该传递给上面函数的令牌吗。当我把它传递给
base64\u decode
时,我看到了JSON对象和其他乱七八糟的东西。我做错了什么?我以前从未使用过Laravel Passport,但我可以想象,用户在使用令牌时已经通过身份验证。因此,也许有一条路线,比如:
Route::get('/user', function(Request $request) {
return Auth::user();
})->middleware('auth:api');
通过在头中添加令牌的同时向另一台机器中的api发送请求,我终于找到了实现这一点的方法:
public function authenticateUser($token) {
$client = new \GuzzleHttp\Client();
try {
$response = $client->request('GET', env('APP_API_URL') . '/api/v2/user_data', [
'headers' => [
'Accept' => 'application/json',
'Authorization' => 'Bearer ' . $token,
],
]);
$request = (string) $response->getBody();
$request = json_decode($request);
$user = User::where('email', $request->data->user->email)->first();
Auth::login($user, true);
} catch (RequestException $e) {
dd('Something went wrong while connection to the api');
}
}
我正在使用post请求将令牌从另一个应用发送到此当前应用。然后我验证这个应用程序中的用户。哦,好的。那么,我们是在谈论一个隐式的赠款代币吗?还是另一种?@MEDZ你知道你需要相同的应用程序密钥(在两个应用程序中)来解密任何加密的东西吗?