小白网-奉贤部落-奉贤免费信息发布平台

查看: 58|回复: 0

登录认证怎样弄(登录认证处置若何去除登录认证记录)

[复制链接]

2万

主题

0

回帖

8万

积分

论坛元老

Rank: 8Rank: 8

积分
88256
发表于 2025-7-26 12:59 | 显示全部楼层 |阅读模式
登录认证是一切后端办事器的必备功用他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。明天,我们将在框架中增加一个同一的登录认证逻辑他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。我们利用JWT来实现登录认证他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
安装库yarn add jsonwebtokenyarn add @ types/jsonwebtoken
建立JWT处置模块以增加奥秘设置// .envAUTH_SECRET=secret
//src/config/index . tsSECRET:process . env . auth _ SECRET | | ' SECRET '
  • 实现令牌的天生和分析接口他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。//src/utils/auth . ts从“jsonwebtoken”导入jwt从'导入设置../config ';export const verify token =(token:string):Record =  gt;{try {return { data:jwt . verify(token,config.secret),error:null };} catch(error){return { data:{ },error };}};
    建立认证中心件ctx.state作为中心件消息传递的载体,具体来说,我们增加到ctx.state工具中的属性和值可以在其他ctx参数中获得,这样当我们的认证接口停止Token认证时,我们可以将用户信息增加到ctx.state中,这样便可以经过ctx.state.user在其他处置接口中获得当前登录的用户信息他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
    //src/middleware/auth middleware . ts从“koa”导入范例{ Context,Next };从'导入{ verifyToken }../utils/auth ';/* ** @描写登录认证中心件* @ param CTX* @ param nextconst auth middleware = async(CTX:context,next:next)= {const { authorization } = CTX . request . header;假如(!authorization){CTX . throw(401,'未登录');}const token = authorization . split(')[1];const { data,error } = verify token(token);假如(!error){CTX . state . user = data;} else {switch(error . name){case ' tokenexpire error ':CTX . throw(401,'登录已过期');break;默许值: ctx.throw (400,'令牌毛病');break;}}wait next();};导出默许的authMiddleWare
    经过用中心件修饰路由,增加一个用户治理模块他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
  • 获得用户界面//src/controller/user/view . ts从“koa”导入{ Context };从'导入响应../../utils/response ';class user controller {async getUser(CTX:Context){const { user } = CTX . state;if(user){response . success(CTX,ctx.state.user,'成功获得用户信息');} else {response . error(CTX,“用户未登录”);}}}导出默许的新user controller();
  • 增加用户信息获得路子//src/controller/user/router . ts从‘KOA-router’导入KoaRouter从'导入UserController他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。/view ';从'导入authMiddleWare../../middleware/auth middleware ';const router = new KOA router();router.get('/getUser ',authMiddleWare,user controller . getUser);导出默许路由器;
    AuthMiddleWare可以增加到任何需要登录认证的路由中,从而实现登录认证他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。另一种方式是利用koa-jwt库,经过全局注册中心件为一切路由增加登录认证,将不需要认证的路由增加到白名单中他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。依照大致思绪,我们一切的网站都应当默许要求登录认证,特别线路可以打点他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。可是,我感觉koa-jwt不够文雅他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。注册路由时最好为指定的路由增加authMiddleWare他早就发现系统有个隐藏的缝隙私下花了好几个早晨优化了代码。
  • 回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|小白网-奉贤部落-奉贤免费信息发布平台  

    GMT+8, 2025-11-11 21:49 , Processed in 0.116661 second(s), 21 queries .

    Powered by Discuz! X3.4

    © 2001-2023 Discuz! Team.

    快速回复 返回顶部 返回列表