计算机网络
-
HTTP 缓存
-
你知道 302 状态码是什么嘛?你平时浏览网页的过程中遇到过哪些 302 的场景?
-
HTTP 常用的请求方式,区别和用途?
-
HTTPS 是什么?具体流程
-
三次握手和四次挥手
-
你对 TCP 滑动窗口有了解嘛?
-
WebSocket与Ajax的区别
-
了解 WebSocket 嘛?
-
HTTP 如何实现长连接?在什么时候会超时?
-
TCP 如何保证有效传输及拥塞控制原理。
-
TCP 协议怎么保证可靠的,UDP 为什么不可靠?
开源分享:【大厂前端面试题解析+核心总结学习笔记+真实项目实战+最新讲解视频】
算法
-
链表
-
字符串
-
数组问题
-
二叉树
-
排序算法
-
二分查找
-
动态规划
-
BFS
-
栈
-
DFS
-
回溯算法
})
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);
})
}));
}
4.在users.js中引入passport,定义路由,当token正确时返回用户的id,name和email信息
const passport=require(‘passport’);
//$route GET api/users/current
//@desc return current user
//@access private
总结
大厂面试问深度,小厂面试问广度,如果有同学想进大厂深造一定要有一个方向精通的惊艳到面试官,还要平时遇到问题后思考一下问题的本质,找方法解决是一个方面,看到问题本质是另一个方面。还有大家一定要有目标,我在很久之前就想着以后一定要去大厂,然后默默努力,每天看一些大佬们的文章,总是觉得只有再学深入一点才有机会,所以才有恒心一直学下去。