谷歌瀏覽器新版本Chrome 80以上版本默認SameSite導致jquery ajax跨域登錄狀態失效的問題

文章參考:https://davidchen93.blog.csdn.net/article/details/104844667?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.essearch_pc_relevant&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.essearch_pc_relevant

 

解決的辦法:

在提供授權登錄的方法中,設置響應頭信息;

 Response.Headers.Add("Set-Cookie", $"uid={str}; SameSite=None; Secure=True;Path=/");

其中 uid爲要共享的cookie名稱,str爲cookie的值。 同時設置SameSite屬性爲None;必須設置 Secure=True.

同時,提供授權的應用必須採用 https。  http無效。

完整方法示例:

  public string Get(string callback)
        {
            Response.ContentType = "application/json";
            Request.Cookies.TryGetValue("uid", out string str);
            var query = Newtonsoft.Json.JsonConvert.SerializeObject(new { code = str });

            Response.Headers.Add("Set-Cookie", $"uid={str}; SameSite=None; Secure=True;Path=/");
          

            return callback + "(" + query + ")";
        }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章