2015-11-13 35 views
2

在我的應用我需要實現一個功能設置cookies:當用戶登錄的應用程序,它(應用程序)需要爲某些網站的Cookie(或任何其它數據)保存到移動Safari。目標是在下次他將在Safari中打開該網站時不讓用戶登錄。從應用程序到Safari瀏覽器在iOS的

Documentation說,它不能使用cookie的iOS來完成。有人知道任何其他解決方案嗎?實現所需的功能是在不打開Safari的情況下對用戶進行「靜默」處理。

UPDATE

是否可以從移動Safari瀏覽器訪問應用程序的數據,並得到一些回調?例如,當用戶瀏覽網站時,網站嚮應用程序發送一些回調並獲得用戶數據的一些響應。

+2

它不能在IOS/mobilesafari來完成,或任何其他操作系統和/或瀏覽器的一個很好的理由:如果任何應用程序可以隨意亂用瀏覽器的cookies,這將是一個巨大的巨大的安全漏洞。 這應該在瀏覽器*中完成,*在有問題的網站上* –

回答

0

你不能訪問Safari的Cookie。

Safari瀏覽器的cookie不是從其他應用訪問。每個應用都會獲得自己的WebKit緩存和Cookie存儲,因此,雖然Cookie會在同一應用中持續存在 ,但它們不能在應用之間訪問。

0

老問題,但是您能否將Safari從您的應用打開一個特殊的一次性URL,將用戶帶到您託管的頁面,將相同服務器上從API檢索到的令牌傳遞給頁面,然後驗證令牌和設置cookie?這種方式授權在服務器上處理,服務器可以在響應中設置cookie。

你可以在myhost.com/myhandler做這樣的事情在你的應用程序

[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"https://myhost.com/myhandler?token=PX2G16BWFKZBQWUKGF3BGRY2Z6BEJ7Z3PMO2GZ6S3R00JVWBVEO6VWBEXNK14IBJ5GKAY5EKBLAHNSAJ8"]]; 

然後網頁將讀取和響應驗證令牌,並設置的cookie,然後驗證令牌。您還可以添加令牌可以使用多長時間的時間限制。

相關問題