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")
|
||||
|
||||
|
||||
class UserIdSerializer(serializers.Serializer):
|
||||
user_id = serializers.CharField(label="用户id")
|
||||
|
||||
|
||||
class PwResetSerializer(serializers.Serializer):
|
||||
phone = serializers.CharField(label="手机号")
|
||||
code = serializers.CharField(label="验证码")
|
||||
|
|
|
@ -3,7 +3,8 @@ from django.urls import path
|
|||
from rest_framework_simplejwt.views import TokenRefreshView
|
||||
|
||||
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/'
|
||||
urlpatterns = [
|
||||
|
@ -18,5 +19,6 @@ urlpatterns = [
|
|||
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 + '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,
|
||||
PwResetSerializer, SecretLoginSerializer, SendCodeSerializer, WxCodeSerializer)
|
||||
PwResetSerializer, SecretLoginSerializer,
|
||||
SendCodeSerializer, WxCodeSerializer, UserIdSerializer)
|
||||
from apps.system.models import User
|
||||
from rest_framework_simplejwt.views import TokenObtainPairView
|
||||
from apps.auth1.authentication import get_user_by_username_or
|
||||
|
@ -234,6 +235,29 @@ class SecretLogin(CreateAPIView):
|
|||
return Response(ret)
|
||||
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):
|
||||
"""重置密码
|
||||
|
|
Loading…
Reference in New Issue