我们如何使用用户名密码csrftoken和csrfmiddlewaretoken登录网络服务器

时间:2017-11-06 16:40:14

标签: objective-c swift django

我正在尝试使用我的身份验证(用户名和密码)登录服务器,以便使用swift 4进行应用程序开发。但是我的服务器需要csfrtoken和csrfmiddlewaretoken。如何提取csrfmiddlewaretoken值并使用所有其他身份验证发出Post请求?

1 个答案:

答案 0 :(得分:2)

记住tadmans评论。如果您真的想按照您在问题中描述的方式进行操作,则需要发出GET请求以解析所需登录页面的CSRF令牌。令牌应位于登录表单内。

我添加了一个bash脚本来从stackoverflow中提取令牌作为参考:

fkey=`curl https://stackoverflow.com/users/login? | grep -P -o '(?<=value\=\")\w*(?=\")'`   
echo $fkey  # got the token      

# make a post request with the freshly parsed token
curl -L -c cookies -d 'fkey='$fkey'&ssrc=head&email=MY_MAIL_ADDRESS&password=MY_PASSWORD&oauth_version=&oauth_server=&openid_username=&openid_identifier=' https://stackoverflow.com/users/login?ssrc=he$        

# finally browse the site with your obtained cookies
curl -b cookies https://stackoverflow.com/users/7727583/yannic-hamann

通过Django REST framework设置基于令牌的身份验证方法很方便。但这只是一个选项,以防您开发自己的API