首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特定用户的自动登录url

特定用户的自动登录url
EN

Stack Overflow用户
提问于 2018-05-14 17:16:47
回答 1查看 595关注 0票数 0

我正在尝试在我创建的链接上自动登录用户,所以我尝试只为它启用一个特定的url网关。

所以我有一个简单的登录视图:

代码语言:javascript
复制
from django.http import HttpResponseRedirect, HttpResponse
from django.shortcuts import redirect, render
from django.views.generic import View
from django.contrib.auth import login, authenticate

import logging

logger = logging.getLogger(__name__)


class SpecialUserGatewayView(View):
    def post(self, request):

        token = request.POST['token']
        user = authenticate(token=token)

        if user is not None:
            if user.is_specific_user:
                return HttpResponseRedirect('dashboard')
            else:
                return HttpResponse("This user is not Specific User!")
        else:
            return HttpResponseRedirect('/')

这个的网址是

url(r'^special_user/login/(?P<token>[0-9A-Za-z])/$,', SpecialGatewayView.as_view(), name="special-login")

现在我正在使用rest框架jwt生成令牌,我的登录url应该类似于这个https://mywebpage/special_user/login/?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImExQGExc3VwZXJ1c2VyLmNvbSIsImVtYWlsIjoiYTFAYTFzdXBlcnVzZXIuY29tIiwiZXhwIjoxNTI2MzE5OTk0LCJ1c2VyX2lkIjo1Miwib3JpZ19pYXQiOjE1MjYzMTY5OTR9.-pUBVjiAbRhgfuj5IFQP7Qh9KXRX4K_Tyn0nsucF1pM

错误是:

代码语言:javascript
复制
Page not found (404)
Request Method: GET
Request URL:    http://localhost:8888/special_user/login/?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImExQGExc3VwZXJ1c2VyLmNvbSIsImVtYWlsIjoiYTFAYTFzdXBlcnVzZXIuY29tIiwiZXhwIjoxNTI2MzE5OTk0LCJ1c2VyX2lkIjo1Miwib3JpZ19pYXQiOjE1MjYzMTY5OTR9.-pUBVjiAbRhgfuj5IFQP7Qh9KXRX4K_Tyn0nsucF1pM/?next=/dashboard/

正如你所看到的,我没有发送好的url到我的申请和更多,所以谁能帮助我,并解释我如何克服这一点,谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-05-14 17:42:50

你有很多错误。首先,您尝试使用GET方法登录,但在视图中使用POST方法。其次,您不需要为GET方法创建一个url,您可以将GET参数发送到任何视图。

若要修复错误,请将url更改为:

代码语言:javascript
复制
url(r'^special_user/login', SpecialGatewayView.as_view(), name="special-login")

你的观点应该是:

代码语言:javascript
复制
class SpecialUserGatewayView(View):
    def get(self, request): # Change to GET

        token = request.GET['token'] # Change to GET
        user = authenticate(token=token)

        if user is not None:
            if user.is_specific_user:
                return HttpResponseRedirect('dashboard')
            else:
                return HttpResponse("This user is not Specific User!")
        else:
            return HttpResponseRedirect('/')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50335740

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档