django - 使用 GET 请求验证和登录用户
问题描述
我的任务是在 GET 请求中使用指定的登录名和密码作为 url 字符串中的参数登录用户。我已经这样做了:
def login_view(request):
username = request.GET.get('login')
password = request.GET.get('passwd')
print('Is authenticated', request.user.is_authenticated)
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
print('Is authenticated', request.user.is_authenticated)
return redirect('home')
return HttpResponse("Login failed")
它必须工作,因为它似乎符合除请求方法之外的文档。在文档中它是 POST 但我必须为 GET 做它。
所以现在它没有经过身份验证:
Is authenticated False
Is authenticated False
我确定这是由于错误的方法类型。您对如何解决此问题有任何建议吗?
解决方案
您是否尝试打印用户名和密码?他们是否正确通过?
而不是这个
print('Is authenticated', request.user.is_authenticated)
打印这个
print('Is authenticated', user.is_authenticated)
推荐阅读
- python-3.x - MongoDB Aggregate - 按月对带有时间戳(int)的字段进行分组
- sql - 根据下一行和 ID 选择数据
- android - 热重载不起作用,但在 Android Studio 中热重启有效
- c++ - 跳过列表,为什么我们需要不止一个插入?
- tizen - 在 Galaxy Watch 上使用系统图标
- node.js - Reactjs 时区转换
- c# - unity Quaternion.LookRotation 含义
- buildroot - 在 buildroot 中仅安装包的一部分
- hive - 在 hive 中处理 char(1) 和 varcar(2) 的 null
- javascript - ./src/index.js 中的错误模块构建失败(来自 ./node_modules/babel-loader/lib/index.js):