使用Koa2做OAuth,浏览器未等待服务器拿到OAuth服务器的数据返回呢,就报了404
如题:
我使用的是Github的OAuth,
当浏览器请求过来的时候,
我本想向github发异步请求验证,
但是浏览器没等我从github上get到信息并response给浏览器,
浏览器就报了404,
又过了几秒,koa也fetch到了OAuth服务器的正常数据,但实则早已与浏览器断开连接.
这是为什么..
代码如下:
let result = await fetch(path, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(params)
})
let body = await result.text()
//解析字符串获取accesstoken
let resultArray = body.split('&')
let resultObj = {}
resultArray.forEach(element => {
let key = element.split('=')[0]
let value = element.split('=')[1]
resultObj[key] = value
});
//没有accesstoken的情况
if (!resultObj.access_token) {
ctx.response.body = {
code: '404',
data: resultObj
}
return
}
let access_token = resultObj.access_token
let userInfo = await fetch('https://api.github.com/user?access_token=' + access_token)
let userData = await userInfo.json()
console.log('success to get userData', userData) // 在浏览器404之后才返回正确的用户信息
ctx.response.body = {
code: '200',
data: userData
} // 为时已晚
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论