2015-02-08 268 views
1

我有一個使用webapp2額外授權機制的應用程序引擎服務器。我有一個Android和一個iOS客戶端,當然這個機制使用cookies來保持會話的進行。Google AppEngine python webapp2會話在Android應用程序中忽略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

在你的鞋子裏,我會開始將'logging.debug'調用入webapp2來源(在本地開發服務器中,假設問題在那裏是可重現的 - 如果不是的話,你需要將webapp2克隆到你的源代碼樹中做同樣的事情)來詳細瞭解每種情況下發生的事情,成功和失敗的事情;沒有任何東西從你向我們展示的日誌條目中跳出來...... – 2015-02-08 22:15:08

回答

0

我已經想通了。

顯然,Android的CookieManager被存儲的cookie爲:

auth=XXXXXX 

和AppEngine上期待:

auth="XXXXX…" 

它也可以在輸入看到我放在這個問題,儘管我認真地認爲這不是問題。

我已經手動將""設置爲Android代碼中的cookie,並解決了問題。