2015-02-23 208 views
0

我的那組是一個$userid餅乾碼一點點,然後重定向如下:Cookie被重定向後未定義移動Safari瀏覽器

$userid = $_GET['userid']; 
setcookie('userid',$userid,time() + (864000 * 7), '/'); 

header("Location: https://coinbase.com/oauth/authorize?response_type=code&client_id=$clientid&redirect_uri=$redirecturi"); 

這工作得很好。如果在設置後回顯$_COOKIE['userid'],則會顯示用戶標識。到現在爲止還挺好。

重定向到Coinbase OAuth頁面,用戶必須登錄並允許我的站點訪問他們的錢包。流程Coinbase將用戶重定向到$redirecturi,該頁面與設置的Cookie代碼位於同一頁面。

然後,我使用$_COOKIE['userid']來確定哪個用戶完成了身份驗證過程並存儲了從Coinbase收到的數據。另外,我會檢查是否設置了$_GET['code'],因此代碼的兩部分是分開的(我不是不小心將$_GET['userid']設置爲cookie)。

網址示例:

腳本位置:http://example.com/dev/startcoinbase.php?userid=abcdef

網址供用戶選擇:http://example.com/dev/startcoinbase.php?userid=abcdef

從Coinbase重定向:http://example.com/dev/startcoinbase.php?code=code

真正奇怪的是,我的代碼工作得很好,當在iOS應用程序的UIwebview中,在Chrome和FF桌面上運行,但不在移動Safari瀏覽器中運行(即使應用程序webviews使用相同的引擎?!)。

任何幫助將不勝感激!

回答

1

域和協議http/https是一樣的嗎?對於http://example.comhttps://example.com的Cookie可以不同。

也要警惕子域名,也許sub.example.com Cookie不可見在example.com

你應該檢查(我認爲你做了,但如果沒有,那麼做),如果你在Safari中啓用了Cookie :)

+0

一個域名是www。前綴和其他不是..愚蠢的錯誤,但感謝您指出它! – Andre 2015-02-23 13:29:55

+0

沒問題!嘗試始終堅持使用「www」或「non-www」的一個域名。不要混用它。它對谷歌和SEO的東西有很大的影響:) – Forien 2015-02-23 13:31:27

相關問題