如何解决如何从Laravel Passport中的刷新令牌获取ID?
我正在编写一个控制器,我想在其中获取刷新令牌ID,但我只是无法弄清楚如何在laravel中实现它。
解密访问令牌没有问题。我正在使用标准协议,并使用护照的公共密钥接收数据。
我尝试了不同的方式。
todo.delete(keep_parents=True)
我也尝试了标准<?php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class RefreshTokenController extends Controller
{
public static $public_key;
public static function refresh_token(Request $request)
{
self::$public_key = file_get_contents(storage_path() . DIRECTORY_SEPARATOR . 'oauth-public.key');
$refresh_token = $request->get('refresh_token');
$data = base64_decode($refresh_token);
$public_key = openssl_get_publickey(self::$public_key);
openssl_public_decrypt($data,$decrypted,$public_key);
dd($decrypted);
}
}
。但这也给出了错误。
传入数据示例。
decrypt();
根据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);
}
}
Laravel Passport使用位于ENV文件中的APP_加密密码。
使用库Defuse\Crypto\Crypto;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。