av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

node.js - koa 無(wú)法將cookie寫(xiě)入到客戶端

瀏覽:132日期:2024-07-30 14:25:05

問(wèn)題描述

登錄接口在 api.site.com 下,登錄之后會(huì)把用戶的access_token 以cookie 的方式往 site.com 這個(gè)域名下寫(xiě),但是刷新頁(yè)面之后在請(qǐng)求頭里面看不到cookie,this.cookies.get()也是undefined,說(shuō)明沒(méi)有寫(xiě)成功。

使用的是本地開(kāi)發(fā)環(huán)境,api.site.com 和 www.site.com 實(shí)際上都是 localhost(127.0.0.1),改的host實(shí)現(xiàn)的

代碼如下:

if(validateEmail && validateUsername) { let [User] = yield this.db.query(sql, user); let id = User.id const token = yield user.generateAccessToken(id); this.cookies.set(’access_token’, token, {domain: ’.site.com’ }) this.body = User;}

求大神支招

更新

整了個(gè) nginx 代理,問(wèn)題依然存在

可以在response header 里面看到服務(wù)器端有寫(xiě)入的 set-cookiesnode.js - koa 無(wú)法將cookie寫(xiě)入到客戶端

但是在瀏覽器的cookies 里面看不到,頁(yè)面請(qǐng)求也沒(méi)有攜帶這個(gè)cookie

問(wèn)題解答

回答1:

這兩天搜遍了google,so,尼瑪終于找到問(wèn)題了,覺(jué)得非常有必要自己記錄一下。全都是因?yàn)檫@個(gè)鬼東西 Request.credentials

The credentials read-only property of the Request interface indicates whether the user agent should send cookies from the other domain in the case of cross-origin requests. This is similar to XHR’s withCredentials flag, but with three available values (instead of two):omit: Never send cookies.same-origin: Only send cookies if the URL is on the same origin as the calling script.include: Always send cookies, even for cross-origin calls.

當(dāng)我們?cè)诎l(fā)送跨域請(qǐng)求時(shí),request 的 credentials屬性表示是否允許其他域發(fā)送cookie,該屬性有3個(gè)值:omit: 默認(rèn)屬性,不允許其他域發(fā)送cookiesame-origin: 只允許同域發(fā)送cookieinclude: 總是允許發(fā)送cookie

所以必須在發(fā)送post請(qǐng)求時(shí)加上 credentials: include,使用jq的話就是

$.ajax({url: ’http://api.site.com/users’,type: ’POST’,data: postData,xhrFields: { withCredentials: true},success: function (data) { console.log(data)} })

同時(shí)在服務(wù)端必須加上:

‘Access-Control-Allow-Credentials’:true

這個(gè)問(wèn)題困擾了好多天,還是讀書(shū)太少。。。

回答2:

用token

回答3:

先用瀏覽器F12看一下cookies里面確定有了你放的token

回答4:

朋友我跟你同樣的問(wèn)題,后臺(tái)代碼是

this.cookies.set(’c’, ’3’,{domain:’localhost’,httpOnly:true);

前臺(tái)同樣是在response Headers 里面能看到Set-Cookies

你是說(shuō)后臺(tái)

this.cookies.set(’c’, ’3’,{domain:’localhost’,httpOnly:true,’Access-Control-Allow-Credentials’:true})

這樣子改嗎?前端請(qǐng)求怎么辦?我的前端請(qǐng)求是這個(gè)樣子的:

$.post('http://localhost:8080/user/userlogin?username='+username+'&password='+password,function(data,status){ alert('Data: ' + data.toString()+ 'nStatus: ' + status); let userinfo = data[0]; $('#txtUsername').html(userinfo.username); $('#txtp').show();});

需要怎么調(diào)整?

相關(guān)文章:
主站蜘蛛池模板: 一级特黄视频 | 日韩激情一区 | 精品国产福利 | 另类ts人妖一区二区三区 | 免费三片在线观看网站v888 | 色婷婷婷| 天天射av| 日韩精品在线一区二区 | 日本精品国产 | 成年人网站在线免费观看 | 中文字幕第7页 | 欧美色图在线观看 | 日本特级淫片 | 91精品国产麻豆国产自产在线 | 免费在线黄色网址 | 午夜美女福利视频 | 青青国产在线 | 福利视频网址导航 | 毛片毛片毛片毛片毛片 | 天天射天天操天天干 | 久久免费毛片 | 超碰av在线播放 | 国产精品成人免费精品自在线观看 | 欧美日韩三区 | 青青草av | av片在线看| 日韩av中文字幕在线播放 | 日韩视频一区 | 成人在线网 | 黄色一级在线观看 | 亚洲成人av在线播放 | 一区二区三区精品视频 | 国内精品一区二区 | 日韩久久久久久久 | 黄色欧美视频 | 色哟哟一区二区三区 | 精品久久久久久久久久久久久久久久 | 欧美日韩亚洲一区二区 | 亚洲91av| 国产综合视频 | 91女人18毛片水多国产 |