我是Django的新手,并且已构建了一个基本应用程序(Django 3.1),该应用程序使用会话身份验证和简单的登录页面(用户名+密码)登录django用户。它工作正常。我想在登录用户可访问的页面上使用javascript(vue.js)来调用托管在同一Django应用程序上的Django REST API。
尽管进行了大量的谷歌搜索,但似乎没有人给出一个清晰的混合Django应用程序的身份验证示例,该应用程序增加了API。我之前使用过许多API,因此熟悉身份验证选项。 我的问题是如何以安全的方式获取django模板加载的javascript的凭据。
理想情况是:
我的问题:
在我的do_login视图函数(如下)中的问题1 ==>中,使用Django内置的 login 方法成功进行身份验证之后,我是否需要在HttpResponse中创建cookie(例如token = XXXXXXX),所以javascript可以访问吗?这样安全吗?
def do_login(request):
....
login(request, user)
...
#create token here and return to user somehow in cookie/sessionStorage
return render(request, 'hello/logged_in_ok.html')
所以我的javascript可以做到类似的操作(仅限演示代码):
function onButtonClick(){
let token = sesssionStorage.getItem("django_gave_me_this_token");
let response = callGetAPISomehow(token, "https://demo/rest/api/account/1")
.....
}
问题2 ==>大多数视图方法的结尾:
return render(request, 'blah/blah.html', {'data': blah})
如何以这种方式在响应中设置Cookie?没有要访问的响应对象。
感谢所有帮助