我有一个使用webapp2 extras身份验证机制的应用引擎服务器。我有一个Android和一个iOS客户端,当然这个机制使用cookie来保持会话的进行。
问题是,当Android客户端在登录后尝试发出请求时 - 即使它发送带有cookie的请求 - cookie也会被忽略,并且会话无法恢复。当我使用iOS客户端时 - 会话已成功验证。
这非常离奇,我无法理解为什么会这样。
我调试了两种情况的会话,这里是:
iOS会话:
Accept: */*
Accept-Language: en-us
Content_Length: 0
Content_Type: application/x-www-form-urlencoded;charset=UTF-8
Cookie: auth="eyJfdXNlciI6WzQ2Nzg2OTY4NTQwOTM4MjQsMSwiV3FmUnFWUmxUME91TllsYnZsMWFxOSIsMTQyMzM1MzI3MCwxNDIzMzUzMjcwLCJMaW9yIFphdGxhdmkiXX0\075|1423353270|c2c7343dbb701f188c18f8b16c0fe06b794ad2d2"
Host: localhost:8081
User-Agent: PeersCards/1.0 CFNetwork/711.1.12 Darwin/14.0.0
X-Appengine-Country: ZZ
INFO 2015-02-08 17:38:55,123 user_api.py:591] Session was recovered
Android会话:
Content_Length: 0
Content_Type: application/x-www-form-urlencoded;charset=UTF-8
Cookie: auth=eyJfdXNlciI6WzQ2Nzg2OTY4NTQwOTM4MjQsMSwiZDBCam5Sc1lucElRTjMySWxKQ0NzZyIsMTQyMzQxOTI1MSwxNDIzNDE5MjUxLCJMaW9yIFphdGxhdmkiXX0\075|1423419251|68063593b0262fdb5c6b479457c95eb9fcc7047f
Host: 10.0.0.16:8081
User-Agent: Dalvik/1.6.0 (Linux; U; Android 4.4.2; SM-N900 Build/KOT49H)
X-Appengine-Country: ZZ
INFO 2015-02-08 18:16:11,215 user_api.py:594] Session is not saved
有什么想法吗?
答案 0 :(得分:0)
我已经弄明白了。
显然,Android CookieManager将cookie存储为:
auth=XXXXXX
AppEngine期待:
auth="XXXXX…"
我也可以在问题的输入中看到,尽管我认为这不是问题所在。
我已将""
手动设置到Android代码中的Cookie中,从而解决了问题。