使 JWT(JSON Web 令牌)持续更长时间或 Flutter 应用程序的其他替代方案
Posted
技术标签:
【中文标题】使 JWT(JSON Web 令牌)持续更长时间或 Flutter 应用程序的其他替代方案【英文标题】:Make JWT (JSON Web Token) Last Longer or Other Alternatives For Flutter App 【发布时间】:2019-11-10 15:41:38 【问题描述】:我有一个使用 Django Rest 框架的 django 后端。我设置了特定于每个用户的 Django Rest API。然后,我还使用 JSON Web Tokens 来通过我的移动 Flutter 前端对用户进行身份验证。
然后我在每个请求中使用登录时获得的令牌,效果很好!我的问题是,当令牌用完时,用户必须再次登录才能使这一切正常工作。
有什么方法可以让 JSON Web Tokens 的持续时间比标准时间更长,比如 5 分钟???
Django 中的令牌代码:
REST_FRAMEWORK =
'DEFAULT_PERMISSION_CLASSES' : ('rest_framework.permissions.IsAuthenticated',),
'DEFAULT_AUTHENTICATION_CLASSES' : ('rest_framework_simplejwt.authentication.JWTAuthentication',),
不同的 URL(也是 get-token url):
urlpatterns = [
path('admin/', admin.site.urls),
path('project/', include('project.urls')),
path('studyplan/', include('studyplan.urls')),
path('get-token/', TokenObtainPairView.as_view()),
path('refresh-token/', TokenRefreshView.as_view())
]
【问题讨论】:
【参考方案1】:看看官方文档:https://github.com/davesque/django-rest-framework-simplejwt 有一个特定的配置可以做到这一点。
SIMPLE_JWT =
'ACCESS_TOKEN_LIFETIME': timedelta(minutes=5)
ACCESS_TOKEN_LIFETIME 一个 datetime.timedelta 对象,它指定访问令牌的有效期。此 timedelta 值在生成令牌期间添加到当前 UTC 时间,以获得令牌的默认“exp”声明值。
【讨论】:
以上是关于使 JWT(JSON Web 令牌)持续更长时间或 Flutter 应用程序的其他替代方案的主要内容,如果未能解决你的问题,请参考以下文章
您可以让 Google OAuth 2.0 访问令牌持续更长时间吗?