当前位置: 首页 > 知识库问答 >
问题:

SPA AngularJS/Django REST中的非持久身份验证cookie

百里金林
2023-03-14

我已经为这个问题纠结了几个小时:我有一个用Angular编写的单页应用程序,它与DjangoREST后端通信。我试图用会话cookie实现一个auth fonction。我的看法是:

1/向未登录的访问者显示登录页面

2/使用凭据发送到URL/登录

3/获取一个“sessionid”cookie,并将用户记录在服务中

4/将vistor重定向到保留的内容,并使用get&post访问cookie中的内容

登录endpoint已设置并正常工作。当我发帖子时,我会收到一个HTTP 200响应,其中包含用户信息和一个Set-Cookie,但随后的调用不包含cookie:

Request URL: ...
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:application/json, text/plain, */*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
Connection:keep-alive
Content-Length:38
Content-Type:application/x-www-form-urlencoded; charset=UTF-8
Host:devinify1.herokuapp..
Origin:http://mobilevinify.herokuapp...
Referer:http://mobilevinify.herokuapp...
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
Form Dataview sourceview URL encoded
username:felix@vinify.co
password:test
Response Headersview source
Access-Control-Allow-Origin:*
Connection:keep-alive
Content-Length:189
Content-Type:application/json
Date:Sat, 14 Dec 2013 20:45:14 GMT
Server:gunicorn/18.0
Set-Cookie:sessionid=ijz27zy655qn0cwmlnvr66609hsyvdub; expires=Sat, 28-Dec-2013 20:45:14 GMT; Max-Age=1209600; Path=/
Vary:Cookie 

我的代码是对angular-app示例的非常简单的修改:https://github.com/felixlc/mobilewebapp/blob/master/app/scripts/security/security.js

我已经在Heroku的localhost et上尝试过了。服务器和客户端在不同的域上,允许使用CORS。当我试图拨打电话时,我收到来自Django的错误

TypeError at /vinibarwines/
int() argument must be a string or a number, not 'AnonymousUser'

我是否应该尝试获取这个cookie,并用AngularJS将其放在标题中?

您可以尝试登录http://mobilevinify.herokuapp.com/#/login和felix@vinify.co&test。然后点击Vinibar,在GET请求上有一个500内部错误

非常感谢费利克斯的帮助

共有1个答案

宗烨赫
2023-03-14

下面是我实际如何进行身份验证的完整布局。Django/Angular身份验证。这是一个相当广泛的回应,我非常乐意回答你可能有的进一步问题。

 类似资料:
  • 我在REST api中使用JWT承载身份验证方案。为了在成功身份验证后将jwt令牌返回给客户端,目前我在正文中使用访问令牌响应,如中所述https://www.rfc-editor.org/rfc/rfc6750#page-10 但是也需要在其他HTTP请求中返回令牌,例如已经存在正文的注册。因此,正在考虑为其使用“身份验证信息”标头。但是承载方案没有在任何地方指定“身份验证信息”标头。我应该使用

  • 身份验证 PDF版下载 企业应用中的URL链接可以通过OAuth2.0验证接口来获取员工的身份信息。 通过此接口获取员工身份会有一定的时间开销。对于频繁获取员工身份的场景,建议采用如下方案: 企业应用中的URL链接直接填写企业自己的页面地址; 员工跳转到企业页面时,企业校验是否有代表员工身份的cookie,此cookie由企业生成; 如果没有获取到cookie,重定向到OAuth验证链接,获取员工

  • 问题内容: 如何在Elasticsearch中定义安全性访问?我有elasticsearch-head插件,但是您的访问不需要任何安全性。 问题答案: 不再积极支持此答案中提到的插件。 elasticsearch中没有内置的访问控制。因此,您需要设置一个反向代理(这是一个博客文章,介绍如何设置nginx),使用第三方的Elasticsearch插件之一,例如https://github.com/A

  • 我将尝试对 socket.io 上的连接进行身份验证。 目前,用户首先通过REST API进行身份验证,然后,我向用户发送一个,其中包含经过身份验证的用户的用户名。打开客户端和服务器之间的连接后,我的计划是从连接的套接字列表中临时删除该套接字,以防止在执行身份验证时在服务器之间接收和发送数据。 在这个身份验证中,我验证令牌,如果令牌有效,我将套接字的id重新添加到已连接套接字的列表中。唯一的问题是

  • 本文向大家介绍asp.net mvc中Forms身份验证身份验证流程,包括了asp.net mvc中Forms身份验证身份验证流程的使用技巧和注意事项,需要的朋友参考一下 验证流程 一、用户登录 1、验证表单:ModelState.IsValid 2、验证用户名和密码:通过查询数据库验证 3、如果用户名和密码正确,则在客户端保存Cookie以保存用户登录状态:SetAuthCookie     1

  • 在ionic/AngularJS/Cordova IOS应用程序上。 我正在尝试使用邮件/密码设置一个持久性登录(遵循< code>Firebase文档:https://Firebase . Google . com/docs/auth/web/auth-state-persistence)。但是我不知道我的代码有什么问题。我的应用程序在登录页面启动,当用户点击“连接按钮”时,它触发登录功能。 登