通过获取的jwt认证token,实现自动登录django-admin后台

视图层

from rest_framework_simplejwt.tokens import AccessToken
from django.middleware.csrf import get_token
from django.contrib.auth import login
class JwtToSessionView(GenericViewSet):
@action(methods=['GET'], detail=False)
def set(self, request, *args, **kwargs):
token = request.GET.get('token')
if not token:
return APIResponse(code=102, msg='token不正确')
access_token = AccessToken(token)
user_id = access_token['user_id']
user = User.objects.get(id=user_id)
login(request, user)
csrf_token = get_token(request)
sessionid = request.session.session_key
return APIResponse(data={'sessionid': sessionid, 'csrftoken': csrf_token})

前端获取sessionid与csrftoken时,将其存入cookie中

Cookies.set('sessionid', response.data.data.sessionid);
Cookies.set('csrftoken', response.data.data.csrftoken);
window.open(BackendUrl) ;
posted @   wellplayed  阅读(29)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示