===
我们使用JWT来实现token功能,
JWT概念:
关于JWT的解释,可以看这篇文章和这篇文章,简单地说,JWT提供了过期时间的机制,并且支持多种加密算法,输出的token是个字符串,由头部、载荷与签名这三部分组成,中间以句点「.」分割
使用:
1.安装相关模块:npm install jsonwebtoken
2.在users.js中引入:const jwt = require('jsonwebtoken');
3.在login路由处添加上token的代码,登录成功时,可以返回一个token
// token规则rule(很重要的信息不要放在这里,如密码)
const rule = {id:user.id, name:user.name};
// token规则rule,密钥secret,过期时间expiresIn,回调函数
jwt.sign(rule, secret, {expiresIn:3600},(err,token)=>{
if(err) throw err;
res.json({ success:true, token:"Bearer "+ token });
})
4.postman测试:
验证token:
========
验证token我使用了passport模块和passport-jwt
passport.js是Nodejs中的一个做登录验证的中间件
passport-jwt是JSON Web Token进行身份验证的Passport策略
安装:npm install passport-jwt passport
使用:
1.在index.js中引入passport并初始化
const passport=require(‘passport’);
app.use(passport.initialize());
2.将passport传入./config/passport.js文件,分离其定义与使用
require(‘./config/passport’)(passport);
3.在config文件夹下新建文件passport.js,规定token的验证是基于id的,当有数据库中匹配的id时返回该用户,没有匹配的id时返回false
var JwtStrategy = require(‘passport-jwt’).Strategy,
ExtractJwt = require(‘passport-jwt’).ExtractJwt;
var opts = {}
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
const User = require(“…/module/User”);
const secret = require(“./key”).secret;
opts.secretOrKey = secret;
module.exports = passport=>{
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
User.findById(jwt_payload.id)
.then(user=>{
if(user){
return done(null, user);
}
return done(null,false);
})
}));
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
最后
你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。
我特地针对初学者整理一套前端学习资料,免费分享给大家,戳这里即可免费领取
后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。
我特地针对初学者整理一套前端学习资料,免费分享给大家,戳这里即可免费领取
[外链图片转存中…(img-DUv0xmmM-1713548315920)]