获取javascript中django站点的会话ID

获取javascript中django站点的会话ID,javascript,django,django-rest-framework,django-sessions,Javascript,Django,Django Rest Framework,Django Sessions,如何使用javascript获取最终存储在cookie中的django会话ID 我需要获取该ID的原因是我正在从RESTAPI执行所有操作,包括身份验证。因此,开发移动应用程序的人正在使用ionic,他们希望向API发出请求以获取会话ID,然后在将来的请求中使用它。有什么建议吗?Django Cookie默认情况下对Javascript不可用,因为出于充分的理由,设置默认设置为True。您可以将此设置为False,然后您的cookie将可访问,但您的站点将可访问。Django cookies在默

如何使用javascript获取最终存储在cookie中的django会话ID


我需要获取该ID的原因是我正在从RESTAPI执行所有操作,包括身份验证。因此,开发移动应用程序的人正在使用ionic,他们希望向API发出请求以获取会话ID,然后在将来的请求中使用它。有什么建议吗?

Django Cookie默认情况下对Javascript不可用,因为出于充分的理由,设置默认设置为
True
。您可以将此设置为
False
,然后您的cookie将可访问,但您的站点将可访问。

Django cookies在默认情况下对Javascript不可用,因为出于充分的理由,默认设置为
True
。您可以将此设置为
False
,然后您的cookie将可访问,但您的站点将可访问。

嘿,我认为这种方法不是最好的方法,您的后端在这里有一扇门用于XSS攻击,我认为最好使用令牌进行身份验证,即使是普通的token.auth,这在django rest framework文档中有很好的解释,但我使用了很多JWT JSONweb令牌身份验证,所以除了令牌、用户名或其他自定义内容(如角色或应用程序逻辑)之外,您不会泄露其他数据,由于ionic是一款有棱角的JS,您可以研究一下如何在前端移动应用程序上管理身份验证过程。

嘿,我认为这种方法不是最好的方法,您的后端在这里为XSS攻击打开了一扇门,我认为最好使用令牌进行身份验证,即使是普通的token.auth,这在django rest framework文档中有很好的解释,但我使用了很多JWT JSONweb令牌身份验证,所以除了令牌、用户名或其他自定义内容(如角色或应用程序逻辑)之外,您不会泄露其他数据,由于ionic是一款有棱角的JS,您可以查看一下如何在前端移动应用程序上管理身份验证过程。

以下是codeadict的回答:

您可以使用JSON Web标记,但它们要稍微复杂一点。最简单的解决方案是使用令牌身份验证,您可以按照此处的说明进行设置:

当您使用Ionic(它在引擎盖下使用AngularJS)时,一个可能更好的解决方案是一个名为django rest auth的包,它完全是为您正在做的事情而构建的

安装说明如下,他们还发布了AngularJS模块:

不要忘记打开HTTPS/SSL,因为使用令牌身份验证而不使用它是非常不安全的


上面链接的angular模块为您处理这些令牌的获取和存储,然后您需要在向api发出的每个请求(通过$http或$request或其他方式)中包含访问令牌

您可以使用JSON Web标记,但它们要稍微复杂一点。最简单的解决方案是使用令牌身份验证,您可以按照此处的说明进行设置:

当您使用Ionic(它在引擎盖下使用AngularJS)时,一个可能更好的解决方案是一个名为django rest auth的包,它完全是为您正在做的事情而构建的

安装说明如下,他们还发布了AngularJS模块:

不要忘记打开HTTPS/SSL,因为使用令牌身份验证而不使用它是非常不安全的


上面链接的angular模块为您处理这些令牌的获取和存储,然后您需要在对api的每个请求中包含访问令牌(通过$http或$request或其他方式)

获取cookie有什么问题?默认名称为
sessionid
,但可通过
SESSION\u COOKIE\u name
进行配置。请注意,我对该方法的安全性没有任何评论;-)拿到饼干有什么问题?默认名称为
sessionid
,但可通过
SESSION\u COOKIE\u name
进行配置。请注意,我对该方法的安全性没有任何评论;-)那么,你会建议什么具体的不同方法吗?我可以在后端获取会话id,然后将其作为特定请求的上下文变量发送。。。。或者把它搞糟。谢谢你的回答。嗯,好问题。我不确定我对爱奥尼亚或你的设置是否了解得足够多,所以我不能给你任何非常好的建议。那么,你能建议一些具体的不同方法吗?我可以在后端获取会话id,然后将其作为特定请求的上下文变量发送。。。。或者把它搞糟。谢谢你的回答。嗯,好问题。我不确定我对爱奥尼亚或你的设置了解得是否足够,是否能给出任何真正好的建议。