后端验证用户是否登录"/>
基于koa后端验证用户是否登录
1.验证用户登录一般都是通过前端发送的请求中是否有包含token,如果请求头中包含了token的话就表示已经登录,没有包含token就表示没有登录。所有我吗要获取前端请求header中的token
先生成token吧,便于后面理解解析token获取用户信息
用于生成token,解析之后也是包含这类信息
res:{id,user_name,is_admin}
async login(ctx,next){// 1.获取用户信息(在token的payload中 记录 id,user_name,is_admin)const {user_name,password} = ctx.request.body// 2.操作数据库try{const {password,...res} = await getUserInfo({user_name})// 3.返回结果ctx.body = {code:0,message:'用户登录成功',result:{token:jwt.sign(res,JWT_SECRET,{expiresIn:'1d'})}}}catch(err){}};
从ctx.request.header中解构出token
const auth = async (ctx, next) => {const { authorization = ''} = ctx.request.header;const token = authorization.replace("Bearer ", "");
}
通过jwt解析token 然后将信息存储于ctx.state.user,便于后期获取用户信息
// user中包含了payload的信息(id, user_name, is_admin)---解析tokenconst user = jwt.verify(token, JWT_SECRET);// 创建state.user对象用于存储用户信息ctx.state.user = user;
更多推荐
基于koa后端验证用户是否登录
发布评论