我正在使用两个授予[password,client_credentials]在laravel a中创建一个API,并且我想为两个授予分别配置令牌生存期。
如果我根据laravel passport documentation配置令牌生存期,则这两个授予的令牌生存期都设置了。
我需要帮助来为这两项赠款配置单独的生存期。
答案 0 :(得分:0)
使用$token = $user->createToken('API Access')
创建访问令牌,并使用DB::table('oauth_access_tokens')->where('id', $token->id)->update([...])
进行查询以手动更改'expires_at'的值。
与->where('access_token_id', $token->id)
答案 1 :(得分:0)
在AuthServiceProvider的启动功能中,您仍然可以在请求中检查grant_type的值以定义不同的生存期。
if($request["grant_type"] === "client_credentials"){
// If token is a client_credential we define it to one year
Passport::tokensExpireIn(Carbon::now()->addYear());
}else{
// Or we define it to only one hour
Passport::tokensExpireIn(Carbon::now()->addHour());
}