web-dev-qa-db-ja.com

Laravelパスポート更新トークン

認証にPassportを使用してLaravelバージョン5.5を使用しています。トークンが正常に作成され、auth:apiミドルウェアを使用してアクセスできます。

ただし、ユーザーがシステムにログインするたびに、そのユーザーの新しいトークンが作成されます。新しいトークンを作成する代わりに、ユーザーの最後のトークンを更新して送り返したいだけです。

次のコードを使用して認証トークンを生成しました

$token = $user->createToken('string-'.$user->id)->accessToken;

1075文字のトークンを生成しますが、データベーステーブルoauth_access_tokensをチェックインすると、80文字のトークンが表示されます。

80文字のトークンを使用して最後に生成されたトークンを取得して更新して送り返すにはどうすればよいですか?

前もって感謝します

4
Akshay Deshmukh

私は次のようなことをしました。

付与更新トークンのエンドポイントを作成しました。そして私のコントローラーでは、

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);
}
0
usama muneer