一次“有意思”的cookie同步問(wèn)題

最近的項(xiàng)目開發(fā)中,遇到了一個(gè)有趣的問(wèn)題:金融項(xiàng)目需要接入第三方的SDK進(jìn)行資金托管,比如充值,提現(xiàn),投資等。當(dāng)從第三方的界面回到原生APP界面時(shí),神奇的事情發(fā)生了。原本存儲(chǔ)在NSHTTPCookieStorage中的cookic卻被清空了。項(xiàng)目是依靠cookie驗(yàn)證用戶登錄狀態(tài),這下出大事了:用戶莫名其妙的退出登錄了。

一,NSHTTPCookieStorage

/*!
  @property sharedHTTPCookieStorage
  @abstract獲取默認(rèn)位置的共享cookie存儲(chǔ)。
  @result共享的cookie存儲(chǔ)
  @discussion從OS X 10.11開始,每個(gè)應(yīng)用程序都有自己的sharedHTTPCookieStorage單例,
  這將不會(huì)與其他應(yīng)用程序共享。
*/
@property(class, readonly, strong) NSHTTPCookieStorage *sharedHTTPCookieStorage;
當(dāng)我們使用該類的時(shí)候,是通過(guò)上面這個(gè)屬性方法獲取到該單例對(duì)象的。至于為什么會(huì)采用單例模式,是因?yàn)樵擃惖挠猛揪褪恰肮蚕淼腸ookie存儲(chǔ)”。
/*!
   @abstract獲取所有的cookies
   @result一個(gè)NSArray的NSHTTPCookies
*/
@property (nullable , readonly, copy) NSArray<NSHTTPCookie *> *cookies;
/*!
   @method setCookie:
   @abstract設(shè)置一個(gè)cookie
   @discussion該cookie將覆蓋現(xiàn)有的cookie與相同的名稱,域名和路徑,如果有的話。
*/
- (void)setCookie:(NSHTTPCookie *)cookie;
/*!
   @method deleteCookie:
   @abstract刪除指定的cookie
*/
- (void)deleteCookie:(NSHTTPCookie *)cookie;
/*!
   @method removeCookiesSince:
   @abstract從提供的日期起,刪除cookie存儲(chǔ)中的所有cookie。
 */
- (void)removeCookiesSinceDate:(NSDate *)date
/*!
   @method cookiesForURL:
   @abstract返回要發(fā)送到給定URL的cookie數(shù)組。
   @param URL獲取cookie的URL。
   @result一個(gè)NSArray的NSHTTPCookie對(duì)象。
   @discussion Cookie管理器檢查它存儲(chǔ)的cookie包括那些應(yīng)該被發(fā)送到給定的URL。 您可以使用<tt> + [NSCookie requestHeaderFieldsWithCookies:] </ tt>來(lái)打開這個(gè)數(shù)組成一組頭字段添加到請(qǐng)求。
*/
- (nullable NSArray<NSHTTPCookie *> *)cookiesForURL:(NSURL *)URL;
/*!
   @method setCookies:forURL:mainDocumentURL:
   @abstract將一個(gè)數(shù)組的cookie添加到cookie存儲(chǔ)中
   Cookie接受政策。
   @param cookies要設(shè)置的cookie。
   @參數(shù)URL發(fā)送cookie的URL。
   @param mainDocumentURL要用作“相同”的基礎(chǔ)的主文檔URL域名為主要文件“政策。
   @discussion對(duì)于mainDocumentURL,調(diào)用者應(yīng)該傳遞URL一個(gè)適當(dāng)?shù)闹魑臋n,如果知道的話。 
  例如,加載時(shí)一個(gè)網(wǎng)頁(yè),頂層的主html文檔的URL框架應(yīng)該通過(guò)。 
  根據(jù)一組響應(yīng)保存cookie頭,你可以使用<tt> + [NSCookie
cookiesWithResponseHeaderFields:forURL:] </ tt>標(biāo)題字段字典,然后使用此方法來(lái)存儲(chǔ)結(jié)果的cookie 按照政策設(shè)置。
*/
- (void)setCookies:(NSArray<NSHTTPCookie *> *)cookies forURL:(nullable NSURL *)URL mainDocumentURL:(nullable NSURL *)mainDocumentURL;
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,909評(píng)論 25 709
  • 今天,你被點(diǎn)贊了嗎?被點(diǎn)贊其實(shí)無(wú)異于小時(shí)候的小紅花。當(dāng)前很多社交軟件里都存在點(diǎn)贊功能,并且在用戶主頁(yè)顯示被點(diǎn)贊的總...
    椿未去湫復(fù)來(lái)閱讀 180評(píng)論 0 0
  • 第一、學(xué)無(wú)止境 隨時(shí)要進(jìn)步,逆水行舟,不進(jìn)則退。 第二、游戲掄錘人人的心態(tài)一定要好 沒(méi)時(shí)間給你去沮喪 抓緊下一把 ...
    功在十駕閱讀 347評(píng)論 0 0
  • 高智慧的海豚已經(jīng)掌握了人類世界的性愛(ài)技巧?嗯,比如“性交並不是為了繁殖後代也可能只是為了娛樂(lè)而已”,最?甚至有些會(huì)...
    牛筋燉豬腳閱讀 3,963評(píng)論 0 1
  • 先了解圣杯布局 雙飛翼與圣杯細(xì)微區(qū)別 雙飛翼比圣杯多了一個(gè)內(nèi)嵌的main-inner標(biāo)簽 雙飛翼設(shè)置main-in...
    元?dú)鉂M滿321閱讀 354評(píng)論 0 1

友情鏈接更多精彩內(nèi)容