【发布时间】:2021-06-04 11:47:52
【问题描述】:
我想知道我做错了什么。我正在尝试使用 React 前端和 Django 后端实现最简单的会话。我知道我的方法不安全而且很糟糕,但它只是一个大学项目,我需要一些可行的东西,所以我应该在我的项目中做其他需要会话的东西。
这就是我的后端查找 Login 和 SessionInfo 的方式:
@api_view(['POST'])
def login(request):
data = request.data
try:
user = MyUser.objects.get(username=data.get('username'),
password=data.get('password'))
request.session['uuid'] = user.id
request.session.modified = True
except MyUser.DoesNotExist:
return HttpResponse("User does not exist.")
return HttpResponse(request.session['uuid'])
@api_view(['GET'])
def getsession(request):
if request.session.has_key('uuid'):
return HttpResponse(request.session['uuid'])
else:
return HttpResponse(False)
当我尝试使用 Postman 对其进行测试时,它总是可以工作,并且我得到了想要的会话 ID,但是当我尝试使用 Axios 发布方法来做同样的事情时,它总是返回 False。我不知道为什么?看起来Django在调用登录函数后破坏了会话,或者它甚至没有创建它。 这就是我的 post 方法在 React 中的样子:
function login(){
axios.post('http://127.0.0.1:8000/evidencija/login/',{
username: 'admin',
password: 'admin'
}).then(
(response) =>{
console.info(response.data)
getSession()
},
(error) =>{
console.log(error)
}
)
}
【问题讨论】:
标签: python reactjs django authentication