摘要:查找原因無法獲取到是因為同源策略和標(biāo)記的原因。在同一個站點下使用屬性是無效的。此外,這個指示也會被用做響應(yīng)中被忽視的標(biāo)示。而通過設(shè)置為獲得的第三方,將會依舊享受同源策略,因此不能被通過或者從頭部相應(yīng)請求的腳本等訪問。
作者:codexu
_
瀏覽器里明明存在的cookie,居然獲取不到???
console.log(document.cookie); // 沒有???起因
近來閑來無事,打算了解一下后端,既然想一探究竟,就從基本的注冊登錄開始做起。
技術(shù)選型作為一名前端開發(fā)人員,用 Node.js 去體驗后端應(yīng)該是最快上手的方式了。看了一下文檔,好長...沒那么多時間看,直接...
框架 koa2
數(shù)據(jù)庫 Mysql,不會操作數(shù)據(jù)庫找到了 Sequelize
請求 Axios
思路賬戶密碼,不做加密,直接明文。
登陸
使用 jwt (jsonwebtoken) 生成 token 。
使用 koa2 ctx.cookies.set 在后端設(shè)置 cookie ,保存 token 。
跨域請求 koa2-cors
問題來了問題一:填好用戶名密碼,點擊登錄,瀏覽器中沒有被設(shè)置 cookie
解決辦法: 使用 Axios 請求時,增加屬性 withCredentials: true,這樣就請求就可以攜帶 cookie 了。
產(chǎn)生這種情況的原因是因為 koa2-cors,如果在前端使用代理跨域不會出現(xiàn)這種情況。
問題二:瀏覽器中雖然能看到 cookie 中已經(jīng)存在 token,但是前端代碼中獲取不到
解決辦法:koa2 設(shè)置 cookie 時,設(shè)置 httpOnly: false 即可。
查找原因doucment.cookie 無法獲取到 cookie 是因為 同源策略 和 HttpOnly 標(biāo)記的原因。
withCredentials:表示跨域請求時是否需要使用憑證,默認是 false
MDN
XMLHttpRequest.withCredentials 屬性是一個 Boolean 類型,它指示了是否該使用類似 cookies,authorization headers(頭部授權(quán))或者TLS客戶端證書這一類資格證書來創(chuàng)建一個跨站點訪問控制(cross-site Access-Control)請求。在同一個站點下使用 withCredentials 屬性是無效的。
此外,這個指示也會被用做響應(yīng)中 cookies 被忽視的標(biāo)示。默認值是 false。
如果在發(fā)送來自其他域的 XMLHttpRequest 請求之前,未設(shè)置 withCredentials 為true,那么就不能為它自己的域設(shè)置 cookie 值。而通過設(shè)置 withCredentials 為true獲得的第三方 cookies,將會依舊享受同源策略,因此不能被通過 document.cookie 或者從頭部相應(yīng)請求的腳本等訪問。
httpOnly:服務(wù)器可訪問 cookie, 默認是 true
MDN換種方式
為避免跨域腳本 (XSS) 攻擊,通過JavaScript的 Document.cookie API無法訪問帶有 HttpOnly 標(biāo)記的Cookie,它們只應(yīng)該發(fā)送給服務(wù)端。如果包含服務(wù)端 Session 信息的 Cookie 不想被客戶端 JavaScript 腳本調(diào)用,那么就應(yīng)該為其設(shè)置 HttpOnly 標(biāo)記。
MDN 上說 可能會 XSS 攻擊,所以換種方式,存儲到 localstorage 里吧。請求時,將 token 加在 header 中 Authorization。
總結(jié)雖然繞了一圈,好像總結(jié)了兩個沒啥卵用的知識點,但是學(xué)習(xí)就是這樣,遇到坑就積累一下。
希望有大佬能指點一下,如何做一個安全的登錄。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/106886.html
摘要:先把當(dāng)成文件,依次查找當(dāng)前目錄下的,找到了,就返回該文件,不再繼續(xù)執(zhí)行。那么關(guān)于正確的結(jié)論是在中使用是跟的效果相同,不會因為啟動腳本的目錄不一樣而改變,在其他情況下跟效果相同,是相對于啟動腳本所在目錄的路徑。 起因 原文收錄在我的 GitHub博客 (https://github.com/jawil/blog) ,喜歡的可以關(guān)注最新動態(tài),大家一起多交流學(xué)習(xí),共同進步,以學(xué)習(xí)者的身份寫博...
摘要:先把當(dāng)成文件,依次查找當(dāng)前目錄下的,找到了,就返回該文件,不再繼續(xù)執(zhí)行。那么關(guān)于正確的結(jié)論是在中使用是跟的效果相同,不會因為啟動腳本的目錄不一樣而改變,在其他情況下跟效果相同,是相對于啟動腳本所在目錄的路徑。 起因 原文收錄在我的 GitHub博客 (https://github.com/jawil/blog) ,喜歡的可以關(guān)注最新動態(tài),大家一起多交流學(xué)習(xí),共同進步,以學(xué)習(xí)者的身份寫博...
摘要:初來乍到,請多多指教,踏入廣州那一刻,我滿懷熱情的對廣州說。本以為,作為大學(xué)畢業(yè)的我,在國內(nèi)最大的軟件服務(wù)商被寄予厚望的我,在廣州應(yīng)該也是個熱餑餑,不愁吃不愁穿不愁的。然而現(xiàn)實是廣州的公司對我并沒有多多指教,而是多多拋棄。 十月,金秋季節(jié),本是豐收之時,卻因為陸續(xù)有同事離職,心中多少有些悲涼之意,頓然想起從參加工作到現(xiàn)在,五年已過,當(dāng)年青澀懵懂的小年輕,如今出街招搖過市時,被小孩子看到...
摘要:初來乍到,請多多指教,踏入廣州那一刻,我滿懷熱情的對廣州說。本以為,作為大學(xué)畢業(yè)的我,在國內(nèi)最大的軟件服務(wù)商被寄予厚望的我,在廣州應(yīng)該也是個熱餑餑,不愁吃不愁穿不愁的。然而現(xiàn)實是廣州的公司對我并沒有多多指教,而是多多拋棄。 十月,金秋季節(jié),本是豐收之時,卻因為陸續(xù)有同事離職,心中多少有些悲涼之意,頓然想起從參加工作到現(xiàn)在,五年已過,當(dāng)年青澀懵懂的小年輕,如今出街招搖過市時,被小孩子看到...
閱讀 4511·2021-09-22 14:57
閱讀 555·2019-08-30 15:56
閱讀 2658·2019-08-30 15:53
閱讀 2234·2019-08-29 14:15
閱讀 1684·2019-08-28 17:54
閱讀 553·2019-08-26 13:37
閱讀 3472·2019-08-26 10:57
閱讀 1041·2019-08-26 10:32