feat: 增加直接userid获取token的接口
This commit is contained in:
parent
fa243faf34
commit
1d0861e0e7
|
@ -20,6 +20,10 @@ class WxCodeSerializer(serializers.Serializer):
|
||||||
code = serializers.CharField(label="code")
|
code = serializers.CharField(label="code")
|
||||||
|
|
||||||
|
|
||||||
|
class UserIdSerializer(serializers.Serializer):
|
||||||
|
user_id = serializers.CharField(label="用户id")
|
||||||
|
|
||||||
|
|
||||||
class PwResetSerializer(serializers.Serializer):
|
class PwResetSerializer(serializers.Serializer):
|
||||||
phone = serializers.CharField(label="手机号")
|
phone = serializers.CharField(label="手机号")
|
||||||
code = serializers.CharField(label="验证码")
|
code = serializers.CharField(label="验证码")
|
||||||
|
|
|
@ -3,7 +3,8 @@ from django.urls import path
|
||||||
from rest_framework_simplejwt.views import TokenRefreshView
|
from rest_framework_simplejwt.views import TokenRefreshView
|
||||||
|
|
||||||
from apps.auth1.views import (CodeLogin, LoginView, LogoutView, PwResetView,
|
from apps.auth1.views import (CodeLogin, LoginView, LogoutView, PwResetView,
|
||||||
SecretLogin, SendCode, TokenBlackView, WxLogin, WxmpLogin, TokenLoginView, FaceLoginView)
|
SecretLogin, SendCode, TokenBlackView, WxLogin, WxmpLogin,
|
||||||
|
TokenLoginView, FaceLoginView, UserIdLogin)
|
||||||
|
|
||||||
API_BASE_URL = 'api/auth/'
|
API_BASE_URL = 'api/auth/'
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
@ -18,5 +19,6 @@ urlpatterns = [
|
||||||
path(API_BASE_URL + 'sms_code/', SendCode.as_view(), name='sms_code_send'),
|
path(API_BASE_URL + 'sms_code/', SendCode.as_view(), name='sms_code_send'),
|
||||||
path(API_BASE_URL + 'logout/', LogoutView.as_view(), name='session_logout'),
|
path(API_BASE_URL + 'logout/', LogoutView.as_view(), name='session_logout'),
|
||||||
path(API_BASE_URL + 'reset_password/', PwResetView.as_view(), name='reset_password'),
|
path(API_BASE_URL + 'reset_password/', PwResetView.as_view(), name='reset_password'),
|
||||||
path(API_BASE_URL + 'login_face/', FaceLoginView.as_view(), name='face_login')
|
path(API_BASE_URL + 'login_face/', FaceLoginView.as_view(), name='face_login'),
|
||||||
|
path(API_BASE_URL + 'login_userid/', UserIdLogin.as_view(), name='userid_login'),
|
||||||
]
|
]
|
||||||
|
|
|
@ -23,7 +23,8 @@ from apps.auth1.serializers import FaceLoginSerializer
|
||||||
|
|
||||||
|
|
||||||
from apps.auth1.serializers import (CodeLoginSerializer, LoginSerializer,
|
from apps.auth1.serializers import (CodeLoginSerializer, LoginSerializer,
|
||||||
PwResetSerializer, SecretLoginSerializer, SendCodeSerializer, WxCodeSerializer)
|
PwResetSerializer, SecretLoginSerializer,
|
||||||
|
SendCodeSerializer, WxCodeSerializer, UserIdSerializer)
|
||||||
from apps.system.models import User
|
from apps.system.models import User
|
||||||
from rest_framework_simplejwt.views import TokenObtainPairView
|
from rest_framework_simplejwt.views import TokenObtainPairView
|
||||||
from apps.auth1.authentication import get_user_by_username_or
|
from apps.auth1.authentication import get_user_by_username_or
|
||||||
|
@ -234,6 +235,29 @@ class SecretLogin(CreateAPIView):
|
||||||
return Response(ret)
|
return Response(ret)
|
||||||
raise ParseError('登录失败')
|
raise ParseError('登录失败')
|
||||||
|
|
||||||
|
class UserIdLogin(CreateAPIView):
|
||||||
|
"""直接UserId登录(危险操作)
|
||||||
|
|
||||||
|
直接UserId登录
|
||||||
|
"""
|
||||||
|
authentication_classes = []
|
||||||
|
permission_classes = []
|
||||||
|
serializer_class = UserIdSerializer
|
||||||
|
|
||||||
|
def post(self, request):
|
||||||
|
sr = UserIdSerializer(data=request.data)
|
||||||
|
sr.is_valid(raise_exception=True)
|
||||||
|
vdata = sr.validated_data
|
||||||
|
userid = vdata['user_id']
|
||||||
|
try:
|
||||||
|
user = User.objects.get(id=userid)
|
||||||
|
except Exception as e:
|
||||||
|
raise ParseError(f'用户不存在-{e}')
|
||||||
|
if user:
|
||||||
|
ret = get_tokens_for_user(user)
|
||||||
|
return Response(ret)
|
||||||
|
raise ParseError('登录失败')
|
||||||
|
|
||||||
|
|
||||||
class PwResetView(CreateAPIView):
|
class PwResetView(CreateAPIView):
|
||||||
"""重置密码
|
"""重置密码
|
||||||
|
|
Loading…
Reference in New Issue