【发布时间】:2017-01-03 17:06:57
【问题描述】:
很高兴知道,因为我的基本注册/身份验证系统正在运行。
所以基本上我明白了:
app.post('/login', function(req,res) {
Users.findOne({
email: req.body.email
}, function(err, user) {
if(err) throw err;
if(!user) {
res.send({success: false, message: 'Authentication Failed, User not found.'});
} else {
//Check passwords
checkingPassword(req.body.password, user.password, function(err, isMatch) {
if(isMatch && !err) {
//Create token
var token = jwt.sign(user,db.secret, {
expiresIn: 1008000
});
res.json({success: true, jwtToken: "JWT "+token});
} else {
res.json({success: false, message: 'Authentication failed, wrong password buddy'});
}
});
}
});
});
然后,每当我发送带有标头中 jwt 的 get 请求时,我都会使用 POSTMAN 保护我的 /admin 路由,一切正常。
现在这是棘手的部分,基本上当我要登录时,如果成功,然后将我重定向到管理页面,每次我尝试访问 admin/* 路由时,我想将我的 jwToken 发送到服务器但是问题是,我该如何实现?我没有使用 redux/flux,只是使用 react/react-router。
我不知道机制是如何工作的。
谢谢大家
【问题讨论】:
-
如果您将令牌存储在本地存储中,这应该就是您所需要的。与任何应用程序相同,而不仅仅是反应
-
哇,感谢您的快速回答。我怎样才能做到这一点?并且通过 localstorage 它是内置的 express 所以我可以调用这个方法..?
-
本地存储是浏览器的东西。当您将令牌从 express 发送到您的客户端时,只需执行
localStorage.token = token即可保存令牌 inlo 存储。然后,当您向服务器发出后续请求时,发送从本地存储中保存的令牌。反应路由器文档有一个正是这个github.com/reactjs/react-router/tree/master/examples/auth-flow的例子
标签: express reactjs passport.js react-router jwt