diff --git a/seal/settings.py b/seal/settings.py index 8228fd7..4899c20 100644 --- a/seal/settings.py +++ b/seal/settings.py @@ -51,6 +51,7 @@ INSTALLED_APPS = [ MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', diff --git a/system/urls.py b/system/urls.py index a0279c6..8b57a8f 100644 --- a/system/urls.py +++ b/system/urls.py @@ -1,5 +1,5 @@ from django.urls import path -from system.views import login_view, UserPasswordUpdateView, logout_view, GetInfo +from system.views import login_view, UserPasswordUpdateView, logout_view, UserInfo app_name = "system" @@ -7,5 +7,8 @@ urlpatterns = [ path('login', login_view, name="login"), path('password_update', UserPasswordUpdateView.as_view(), name="password_update"), path('logout', logout_view, name="logout"), - path('get_info', GetInfo.as_view()), + + + path('api/user_info', UserInfo.as_view()), + path('api/logout', UserInfo.as_view()) ] diff --git a/system/views.py b/system/views.py index 6d73789..c76a917 100644 --- a/system/views.py +++ b/system/views.py @@ -12,25 +12,44 @@ from django.contrib.auth.mixins import LoginRequiredMixin, PermissionRequiredMix from django.contrib.auth.decorators import login_required from django.views.generic import ListView, View, DetailView, CreateView, UpdateView from django.contrib.auth import logout +from rest_framework.authentication import TokenAuthentication +from rest_framework.authtoken.models import Token +from rest_framework.views import APIView +from rest_framework.response import Response logger = logging.getLogger('system') -class GetInfo(View): +class UserInfo(APIView): """ - 为了 配合 seal-vue 项目 临时使用 + 获取用户信息 """ - def get(self, request): - admin = { - 'name': 'super_admin', - 'user_id': '1', - 'access': ['super_admin', 'admin'], - 'token': 'super_admin', + def post(self, request): + token = (json.loads(request.body))['token'] + obj = Token.objects.get(key=token).user + result = { + 'name': obj.username, + 'user_id': obj.id, + 'access': ['super_admin', 'admin'] if obj.is_superuser else [], + 'token': token, 'avator': 'https://file.iviewui.com/dist/a0e88e83800f138b94d2414621bd9704.png' } - return HttpResponse(json.dumps(admin)) + return HttpResponse(json.dumps(result)) +class UserLogin(APIView): + """ + + """ + def post(self, request): + token = (json.loads(request.body))['token'] + obj = Token.objects.get(key=token) + obj.delete() + result = { + "status": True + } + return HttpResponse(json.dumps(result)) + class CustomBackend(ModelBackend): """ 用户名字/邮箱名字 登录