我使用Appcelerator Titanium和Python的Django来创建一个移动应用程序。正如您可能已经猜到的,Django正被用于后端。目前我正在尝试创建一个登录表单,它需要一个CSRF令牌来正确地接受数据。我试图从Django检索CSRF令牌,但我尝试过,但失败了,Google没有任何答案。在
问题是通常你会得到一个包含CSRF令牌的HTML页面并发送它。我现在想做的是在不知道CSRF的情况下发一个帖子。在appcelerator中,我试过跑步
HTTPSession.open(GET, *url*)
token = HTTPSession.getRecievedHeaders("X-CSRF-TOKEN")
HTTPSession.open(POST, *url)
HTTPSession.getRecievedHeaders("X-CSRF-TOKEN", token)
HTTPSession.send(data)
但由于钛的工作原理,这并不起作用。那我怎么能拿到代币呢?我是否需要创建一个特定的url来创建一个会话并显示CSRF令牌?我只是担心,一旦我收到令牌,我将需要重新连接到服务器,令牌将被更改。在
在我的google搜索中,我发现Drupal在url上有一个函数:services/session/token
在Django有没有类似的词?或者我需要创建一个只显示CSRF令牌的页面吗?在
如果您使用Titanium来创建应用程序,那么可以使用SetRequestHeader来设置请求中的令牌。在
希望有帮助。在
我需要在Django中创建我自己的函数来实现这一点,但是我终于让它工作起来了!在
然后通过
^{pr2}$使用它:
一旦连接到该网站,就会在Django中创建一个会话,并为该特定IP创建一个csrf令牌,以便您可以根据需要多次检索它
相关问题 更多 >
编程相关推荐