我是Django和基于令牌的认证的新手,我有一个来自django (非DRF )的多页面站点和一个使用graphQL on DRF和JWT认证的react应用。它们位于不同的子域,但使用相同的django/db实例。
我希望我的用户能够在任何一个网站上登录,并导航到另一个网站,并仍然保持“身份验证”。即不必再次登录。我正在考虑尝试让我的非DRF站点使用JWT,但似乎没有多少不是DRF的在线内容。另外,是否有可能提供跨子域的令牌?
这一切都是白日梦吗?有人能告诉我解决这个问题的最佳方向吗?
提前感谢您的宝贵时间。
发布于 2021-05-21 10:01:12
只需在Rest API默认身份验证类上使用SessionAuthentication
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': [
.........
'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication',
'rest_framework_simplejwt.authentication.JWTAuthentication',
..........
]
}这将确保您使用会话身份验证,它与所有站点共享会话cookie进行身份验证,您可以使用JWT和会话身份验证。但是要小心,因为您的api也可以通过会话身份验证来访问。
https://stackoverflow.com/questions/66511496
复制相似问题