实施认证流程有些困难。
以下流程正在工作: 从客户端,我正在重定向到serv端:
document.location.href = URI.UriSignIn
在伺服方面,我正在重定向到Google的授权服务器:
const baseURI = "https://accounts.google.com/o/oauth2/v2/auth?";
const redirect_uri =
`redirect_uri=http://${process.env.URIBASE}:8081/callBackGoogle`;
const prompt = "&prompt=consent";
const reponse_type = "&response_type=code";
const client_id =
"&client_id=" + process.env.CLIENT_ID;
const scope =
"&scope=https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/userinfo.profile";
res.writeHead(302, {
'Access-Control-Allow-Origin': '*',
Location:
baseURI +
redirect_uri +
prompt +
reponse_type +
client_id +
scope
});
它正在工作,但是现在我正尝试在从客户端到服务器端的重定向中添加“ UUID”,以便客户端稍后可以像这样检索他的JWT:
axios.get(URI.UriSignIn, {
headers: {
'token-client': uuid()
}
})
具有相同的代码serv端,并且出现以下错误
我找到了一种解决方法,将重定向分为2个请求,一个发送UUID,另一个发送重定向,但这不是最安全的操作(出于安全原因)
答案 0 :(得分:0)
该问题的答案是OP正在使用对URL的ajax / rest调用,该URL应该是重定向的目标。
所以,从广义上讲,不是
axios.get(URL)
用户应该这样做
location.href = url