CEF 設置Cookie


參考文檔:http://magpcss.org/ceforum/apidocs3/projects/(default)/CefCookieManager.html

轉載:https://www.cnblogs.com/guolixiucai/p/6994559.html

轉載:https://blog.csdn.net/wangshubo1989/article/details/50520370

轉載:https://blog.csdn.net/lee353086/article/details/42970909

轉載:http://www.itboth.com/d/qyAB7j/cookie-cef-c++

Cookie是什么:

簡單地說,cookie 就是瀏覽器儲存在用戶電腦上的一小段文本文件。cookie 是純文本格式,不包含任何可執行的代碼。一個 Web 頁面或服務器告知瀏覽器按照一定規范來儲存這些信息,並在隨后的請求中將這些信息發送至服務器,Web 服務器就可以使用這些信息來識別不同的用戶。大多數需要登錄

的網站在用戶驗證成功之后都會設置一個 cookie,只要這個 cookie 存在並可以,用戶就可以自由瀏覽這個網站的任意頁面。再次說明,cookie 只包含數據,就其本身而言並不有害。

設置Cookie的失效時間:

如果Cookie沒有設置expires屬性,那么 cookie 的生命周期只是在當前的會話中,

關閉瀏覽器意味着這次會話的結束,此時 cookie 隨之失效。

CEF3中,CefCookieManager這個類就是用來管理cookies的。

在頭文件cef_cookies中,在cef_cookies_capi.h里,有詳細的注釋,和上邊鏈接里的文檔說明一樣。

Cookies的管理無外乎Cookies的設置、獲取、刪除、查找,外加一個存儲位置的設置。

Method Summary
 static CefRefPtr< CefCookieManager > CreateManager( const CefString& path, bool persist_session_cookies, CefRefPtrCefCompletionCallback > callback ) 
          Creates a new cookie manager.
 virtual bool DeleteCookies( const CefString& url, const CefString& cookie_name, CefRefPtrCefDeleteCookiesCallback > callback )= 0 
          Delete all cookies that match the specified parameters.
 virtual bool FlushStoreCefRefPtrCefCompletionCallback > callback )= 0 
          Flush the backing store (if any) to disk.
 static CefRefPtr< CefCookieManager > GetGlobalManagerCefRefPtrCefCompletionCallback > callback ) 
          Returns the global cookie manager.
 virtual bool SetCookie( const CefString& url, const CefCookie& cookie, CefRefPtrCefSetCookieCallback > callback )= 0 
          Sets a cookie given a valid URL and explicit user-provided cookie attributes.
 virtual bool SetStoragePath( const CefString& path, bool persist_session_cookies, CefRefPtrCefCompletionCallback > callback )= 0 
          Sets the directory path that will be used for storing cookie data.
 virtual void SetSupportedSchemes( const std::vector< CefString >& schemes, CefRefPtrCefCompletionCallback > callback )= 0 
          Set the schemes supported by this manager.
 virtual bool VisitAllCookiesCefRefPtrCefCookieVisitor > visitor )= 0 
          Visit all cookies on the IO thread.
 virtual bool VisitUrlCookies( const CefString& url, bool includeHttpOnly, CefRefPtrCefCookieVisitor > visitor )= 0 
          Visit a subset of cookies on the IO thread.
    std::wstring username_key = L"username";
    std::wstring username_value = L"chechen";
    std::wstring domain = L"www.cnblogs.com/chechen"

    CefRefPtr<CefCookieManager> manager = CefCookieManager::GetGlobalManager();
    CefCookie cookie;
    CefString(&cookie.name).FromWString(username_key.c_str());
    CefString(&cookie.value).FromWString(username_value.c_str());
    CefString(&cookie.domain).FromWString(domain.c_str());
    CefString(&cookie.path).FromASCII("/");
    cookie.has_expires = true;//設置Cookie時間
    cookie.expires.year = 2200;
    cookie.expires.month = 4;
    cookie.expires.day_of_week = 5;
    cookie.expires.day_of_month = 11;

    domain = L"https://" + domain;
    CefPostTask(TID_IO, NewCefRunnableMethod(manager.get(), &CefCookieManager::SetCookie,CefString(domain.c_str()), cookie));

注意:cookie.domain是不帶”https://”的,而CefString(domain.c_str())中的domain是帶”https://“的,一定要注意。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM