php adddays,php – 根据客户端Laravel Passport的不同令牌到期

本文讨论了如何在Laravel Passport中根据登录来源设置不同的令牌过期时间。作者首先介绍了当前的实现,即所有令牌在1分钟后过期。然后,他们提出了一个解决方案,根据请求中的'from'参数动态调整过期时间,例如,为网页应用设置8小时,桌面应用设置1年,Android应用设置5个月。这种方法涉及在登录函数中检查'from'参数并相应地设置过期时间。
摘要由CSDN通过智能技术生成

我有一个使用Passport身份验证的Laravel应用程序.

登录

public function authenticate(Request $request)

{

$params = [

'grant_type' => 'password',

'client_id' => 1,

'client_secret' => "secret",

'username' => request('username'),

'password' => request('password'),

'active' => 1,

'scope' => '*'

];

$request->request->add($params);

// verify the credentials and create a token for the user

$proxy = Request::create('oauth/token', 'POST');

return Route::dispatch($proxy);

}

我已经解决了AuthServiceProvider的到期问题:

Passport::routes(function ($router) {

$router->forAccessTokens();

});

Passport::tokensExpireIn(now()->addMinute(1));

Passport::refreshTokensExpireIn(now()->addDays(30));

它可以工作,但1分钟后令牌到期.我想要一个不同的令牌到期日期,具体取决于我尝试登录的位置,因为我有一个网站,桌面应用程序和一个Android应用程序.

例如:

>网络应用程序:8小时

>桌面应用:1年

> android app:5个月

我想从我试图登录的地方发送给我,但这是一个好方法吗?还有其他可能的方法吗?

现在我试过这个:

– )从AuthServiceProvider中删除:

Passport::tokensExpireIn(now()->addMinute(1));

并在登录功能中添加:

if (request('from') == 'something') {

Passport::tokensExpireIn(now()->addYears(1));

} else {

Passport::tokensExpireIn(now()->addHours(8));

}

$proxy = Request::create('oauth/token', 'POST');

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值