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