strapi token expired解决方案

当遇到Strapi自动生成的token默认30天过期的问题,直接修改token过期时间无效。解决方法包括:调用POST方法,手动设置identifier和password,以及在extensions/users-permissions/config/security.json中配置jwt生成选项,例如设置过期时间为60秒。记得在测试环境验证后同步数据到生产环境。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

失效原因:

strapi自动生成的token,默认过期时间为30天,网上查了很多种方式想直接修改token的过期时间,验证之后没有可以用的。

解决方案如下:

原获取token的方式新获取token的方式
从管理后台手动拿,在前端写死前端新增一个获取token的接口(这个token的过期时间可以设置)

具体操作如下:

调用http://localhost:1337/auth/local的POST方法

post-body如下:

注:identifier和password需要去管理后台手动设置,如何设置参考https://juejin.cn/post/6965676280693456933
{
 "identifier": "<your email>",
 "password": "<your password>"
}

response:

{
   "jwt": "<your jwt token>",
   "user": {
      # the properties of this user
   }
}

在这里插入图片描述

获取到的jwt可直接用于调用接口

如何设置jwt的过期时间(具体参考官方文档https://strapi.io/documentation/developer-docs/latest/development/plugins/users-permissions.html#token-usage)

在extensions/users-permissions/config/security.json里配置jwt生成选项

注: 需安装额外的依赖包
 npm install jsonwebtoken
  • expiresIn: 以秒或描述时间跨度 zeit/ms 的字符串表示。
    例如:60、“45m”、“10h”、“2 天”、“7d”、“2y”。数值被解释为秒计数。如果您使用字符串,请确保提供时间单位(分钟、小时、天、年等),否则默认使用毫秒单位(“120”等于“120ms”)。
{
  "jwt": {
    "expiresIn": "1d"   //
  }
}
注: "identifier": "", "password": "",这些信息是保存在数据库里的,若测试环境进行验证通过之后,记得把测试环境的数据同步到生产环境。

参考链接:

https://strapi.io/documentation/developer-docs/latest/development/plugins/users-permissions.html#permissions-management

https://juejin.cn/post/6965676280693456933

https://stackoverflow.com/questions/62947112/strapi-jwt-token-lifetime

https://github.com/strapi/strapi/issues/1676#issuecomment-409575253

回答: 当令牌过期时,您可以通过调用FirebaseInstanceIdService中的onTokenRefresh方法来获取新的令牌。在该方法的上下文中,您可以使用FirebaseInstanceID.getToken()来访问当前可用的注册令牌。请注意,如果尚未生成新的令牌,getToken方法将返回null。\[1\]\[2\]另外,在配置文件security.json中,您可以设置jwt生成选项的过期时间。您可以使用以秒为单位的数字或描述时间跨度的字符串来表示过期时间。例如,"1d"表示1天。\[3\]如果您的令牌已过期,您需要更新令牌并使用新的令牌进行验证。 #### 引用[.reference_title] - *1* *2* [Firebase Android身份验证失败:expired_token(身份验证令牌已过期)](https://blog.csdn.net/weixin_29119475/article/details/117740200)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [strapi token expired解决方案](https://blog.csdn.net/qq_42338771/article/details/119613842)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值