作者:VW旻shi只吃货8453 | 来源:互联网 | 2023-09-11 17:13
最近在学习koa写一个小demo,从login用ajax登录验证成功后返回token并且把token存在localstorage,然后自动跳转home,home的koa-route.get路由写
最近在学习koa写一个小demo,从login用ajax登录验证成功后返回token并且把token存在localstorage,然后自动跳转home,home的koa-route.get路由写在
1
| app.use(jwt({secret: config.app.secret})); |
后面,然而总是返回‘No Authorization header found’,jwt方式创建的token放在window.localStorage里怎么才能用在一个打开新页面的请求里呢?
以下是部分代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| app.use(route.post('/login', function *() {
// 省略了验证过程
// ...
if (!user) {
this.throw(401, 'Incorrect username.');
} else if (!ps.validatePass(credentials.password, user.password)) {
this.throw(401, 'Incorrect password.');
} else {
user.id = user._id;
delete user._id;
delete user.password;
}
// sign and send the token along with the user info
var token = jwt.sign(user, config.app.secret, {expiresIn: 90 * 24 * 60 * 60 /* 90 days */});
this.body = {token: token, user: user};
}));
app.use(jwt({secret: config.app.secret}));
app.use(route.get('/', function *() {
this.body = 'got u';
})); |
如果使用COOKIE配合session是需要给每个路由增加验证,或者过滤器,使用jwt怎么做到某些页面的非登录状态的屏蔽呢?
我有找到github上一个框架是使用在html文件头部验证是否存在
,并且把这个文件的路由写在koa-jwt外部,如果不存在
就跳转登录页面,但是这种屏蔽是不是太简单了?
如果再加客户端到服务器端通信是不是会影响性能?
如果改写成SPA,不修改location跳转,那么储存了token之后直接进入第二页面如何实现?