如何从Laravel Passport的Refresh代币中获取ID? 我正在编写一个控制器,我想在其中获得刷新令牌ID,但我只是不知道如何在Laravel中做到这一点。 解密访问令牌没有问题。我正在使用

问题描述 投票:0回答:1

我也尝试了标准

decrypt();

。但这也会给出一个错误。

传入数据示例。

def50200dc11ab81fdb16530806530f85fe41f7facc934447589b3a0daa202d56f5b4a8265db94b418e09280bcc8a05c88c3817612200d3c28de15c9adfd4a213f7cb136fca6f78099d686fce8d5ddf93f9bb29c1df081d7f7b75394875b5287a7ca5d9ca5eb513ea13a26195aeda41c897832467ec1b0348cdb3e5ed9476e5e7d8712b8628c18ee8ffb525de965faeb3f25b1a8eb4ee904a15341650fe6d3ed901600beda0f80c71b9b607f3e549ba8fbd9eda0e02fc7647ab8b4ea9161f7eb65833bfe46fb7f3e116a207282f947660ead392dc78ad2b9501331b4d28433a421a4193484e113baf8050d3878bd94b6ac860a1a766e79877f1af8d3ab5aee3779bf33c2a7e347552e51bb8b5448585435ef7b79d06853bcd775ce781b8d2e56289dbc8d4a10ec507aecde19bb496e90f88a687ee9bb33755046d50f860f7723d87bd4c079cd4d1242903bdb3ca447ce6ab03f2fd800182d0d8c5a3b7de5402ba2ecb4058d458cbee94da433635877e63120d6418e51eafdfd763191fceef399c16c088e27da9ffbf9

according to oauth_refresh_tokens表。保留所有刷新令牌ID。在调用刷新令牌方法时,根据刷新令牌,数据库中相应的访问令牌匹配项并续订。 我将感谢解决方案。
	

<?php namespace App\Http\Controllers\Api; use App\Http\Controllers\Controller; use Defuse\Crypto\Crypto; use Exception; use Illuminate\Http\Request; class RefreshTokenController extends Controller { public static function refresh_token(Request $request) { $refresh_token = $request->get('refresh_token'); $app_key = env('APP_KEY'); $enc_key = base64_decode(substr($app_key, 7)); try { $crypto = Crypto::decryptWithPassword($refresh_token, $enc_key); } catch (Exception $exception){ return $exception; } return json_decode($crypto, true); } }

LARALL PASSPORT使用位于Env文件中的APP_加密密码。
使用库

Defuse\Crypto\Crypto;


the Passport Auth Middleware可用:

$token_id = $request->user()->token()->id;

php laravel oauth-2.0 jwt laravel-passport
1个回答
4
投票
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.