我正在做一个项目,使用 firebase auth 登录,即 login with google
;如果已登录,则重定向到 /app
,其中存在 Web 应用程序的实际功能。
登录页面js:
document.getElementById('login').addEventListener('click', e => {
var provider = new firebase.auth.GoogleAuthProvider();
firebase.auth()
.signInWithPopup(provider)
.then((result) => {
firebase.auth().currentUser.getIdToken(true).then(function(token) {
// make request to backend to get /app page where main app exists
axios.get('/app', {
headers: { 'Authorization': `Bearer ${token}` }
})
.then(res => {
console.log(res.data);
});
});
});
});
现在我的主要动机是,如果标题中没有 JWT 令牌,用户将无法访问除 /
(登陆页面)以外的页面。
所以这里当用户使用 login With google
登录时,它会在登录时提供令牌,然后它会使用令牌请求后端,后端将返回预渲染的 /app
页面!
res.data
中的 HTML 代码,但我想要实际页面!!Axios 可以很好地从我的后端 api 获取数据,但我无法弄清楚如何附加标题并生成请求,并获取页面而不是源代码作为响应;
同样的问题在应用程序中无处不在。我只是不希望用户访问页眉中没有 JWT 的着陆页以外的页面!
编辑:
返回源代码的意思是:
img of console log
欢迎任何帮助、想法或方法??
答案 0 :(得分:0)
/app
这样浏览器就会通过渲染响应来为你解决问题。使用 cookie 是不使用 AJAX 实现登录的常用方法。
无法进行重定向并设置授权标头。