【发布时间】:2018-03-06 04:29:44
【问题描述】:
我想通过 jwt 令牌使用 passport-github 或 facebook 登录,而不使用在服务器上保存会话。 但是我们有两个来自前端的请求:
app.get('/auth/facebook',
passport.authenticate('facebook'));
app.get('/auth/facebook/callback',
passport.authenticate('facebook', { failureRedirect: '/login' }),
function(req, res) {
// Successful authentication, redirect home.
res.redirect('/');
});
如何处理前端代码?
正常情况下,我们只有一个请求
axios.post(`${API_URL}/auth/login`, { email, password })
.then(response => {
cookie.save('token', response.data.token, { path: '/' });
dispatch({ type: AUTH_USER });
window.location.href = CLIENT_ROOT_URL + '/dashboard';
})
.catch((error) => {
errorHandler(dispatch, error.response, AUTH_ERROR)
});
}
所以我们可以在本地保存令牌。但是对于 passport-facebook,我们有两个请求('/auth/facebook' 和 '/auth/facebook/callback')。那么如何在本地保存token呢?
【问题讨论】:
-
如何向客户端发送 jwt 令牌?
标签: jwt passport.js passport-facebook express-jwt