Google AppEngine python webapp2会话忽略Android应用中的cookie

时间:2015-02-08 18:23:49

标签: android google-app-engine session cookies

我有一个使用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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我已经弄明白了。

显然,Android CookieManager将cookie存储为:

auth=XXXXXX

AppEngine期待:

auth="XXXXX…" 

我也可以在问题的输入中看到,尽管我认为这不是问题所在。

我已将""手动设置到Android代码中的Cookie中,从而解决了问题。