認証にPassportを使用してLaravelバージョン5.5を使用しています。トークンが正常に作成され、auth:api
ミドルウェアを使用してアクセスできます。
ただし、ユーザーがシステムにログインするたびに、そのユーザーの新しいトークンが作成されます。新しいトークンを作成する代わりに、ユーザーの最後のトークンを更新して送り返したいだけです。
次のコードを使用して認証トークンを生成しました
$token = $user->createToken('string-'.$user->id)->accessToken;
1075文字のトークンを生成しますが、データベーステーブルoauth_access_tokens
をチェックインすると、80文字のトークンが表示されます。
80文字のトークンを使用して最後に生成されたトークンを取得して更新して送り返すにはどうすればよいですか?
前もって感謝します
私は次のようなことをしました。
付与更新トークンのエンドポイントを作成しました。そして私のコントローラーでは、
public function userRefreshToken(Request $request)
{
$client = DB::table('oauth_clients')
->where('password_client', true)
->first();
$data = [
'grant_type' => 'refresh_token',
'refresh_token' => $request->refresh_token,
'client_id' => $client->id,
'client_secret' => $client->secret,
'scope' => ''
];
$request = Request::create('/oauth/token', 'POST', $data);
$content = json_decode(app()->handle($request)->getContent());
return response()->json([
'error' => false,
'data' => [
'meta' => [
'token' => $content->access_token,
'refresh_token' => $content->refresh_token,
'type' => 'Bearer'
]
]
], Response::HTTP_OK);
}