当前位置: 首页 > news >正文

中企动力网站报价运营seo是什么意思

中企动力网站报价,运营seo是什么意思,asp网站源码破解,这样建立网站使用 Nest.js 开发项目时#xff0c;处理身份验证和授权是常见的需求#xff0c;可以采用以下架构和实现方式。 架构 用户认证模块 (Auth Module): 服务 (Service): 处理用户登录逻辑#xff0c;生成 JWT#xff08;JSON Web Token#xff09;#xff0c;以及验证 token…使用 Nest.js 开发项目时处理身份验证和授权是常见的需求可以采用以下架构和实现方式。 架构 用户认证模块 (Auth Module): 服务 (Service): 处理用户登录逻辑生成 JWTJSON Web Token以及验证 token。控制器 (Controller): 提供登录接口处理来自客户端的请求。中间件/守卫 (Guards): 在需要保护的路由中验证请求头中的 token决定是否放行。 JWT 模块: 利用 Nest.js 提供的 JWT 模块来简化 token 的生成与验证。 数据库模块: 用于存储和查询用户信息可能使用 TypeORM 或 Mongoose 等库来操作数据库。 实现步骤 1. 安装所需的依赖 在项目中安装以下依赖 npm install nestjs/jwt nestjs/passport passport passport-jwt bcrypt2. 创建 Auth Module 生成 Auth 模块 nest g module auth nest g controller auth nest g service auth3. 实现用户登录逻辑 在 auth.service.ts 中实现用户登录和 token 生成逻辑 import { Injectable } from nestjs/common; import { JwtService } from nestjs/jwt; import { UserService } from ../user/user.service; // 假设你有一个用户服务 import { User } from ../user/user.entity; // 假设你有一个用户实体 import * as bcrypt from bcrypt;Injectable() export class AuthService {constructor(private userService: UserService,private jwtService: JwtService,) {}async login(username: string, password: string): Promisestring {const user: User await this.userService.findByUsername(username);if (user await bcrypt.compare(password, user.password)) {const payload { username: user.username, sub: user.id };return this.jwtService.sign(payload);}throw new Error(Invalid credentials);} }4. 创建登录接口 在 auth.controller.ts 中添加登录接口 import { Controller, Post, Body } from nestjs/common; import { AuthService } from ./auth.service;Controller(auth) export class AuthController {constructor(private authService: AuthService) {}Post(login)async login(Body() loginDto: { username: string; password: string }) {return this.authService.login(loginDto.username, loginDto.password);} }5. 设置 JWT 模块 在 auth.module.ts 中配置 JWT 模块 import { Module } from nestjs/common; import { JwtModule } from nestjs/jwt; import { AuthController } from ./auth.controller; import { AuthService } from ./auth.service; import { UserService } from ../user/user.service; // 引入用户服务Module({imports: [JwtModule.register({secret: your_secret_key, // 应该放在环境变量中signOptions: { expiresIn: 60s }, // token 过期时间}),],controllers: [AuthController],providers: [AuthService, UserService], }) export class AuthModule {}6. 创建 JWT 校验守卫 创建一个守卫来验证 token在 auth.guard.ts 中实现 import { Injectable, ExecutionContext, UnauthorizedException } from nestjs/common; import { AuthGuard } from nestjs/passport;Injectable() export class JwtAuthGuard extends AuthGuard(jwt) {handleRequest(err, user) {if (err || !user) {throw new UnauthorizedException();}return user;} }7. 设置 JWT 策略 在 auth.strategy.ts 中定义 JWT 策略 import { Injectable } from nestjs/common; import { PassportStrategy } from nestjs/passport; import { Strategy, ExtractJwt } from passport-jwt; import { UserService } from ../user/user.service; // 引入用户服务 import { JwtPayload } from ./jwt.payload; // 定义 payload 接口Injectable() export class JwtStrategy extends PassportStrategy(Strategy) {constructor(private userService: UserService) {super({jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),ignoreExpiration: false,secretOrKey: your_secret_key, // 应该放在环境变量中});}async validate(payload: JwtPayload) {return this.userService.findById(payload.sub); // 根据 payload.sub 查找用户} }8. 保护路由 在需要保护的控制器中使用守卫 import { Controller, Get, UseGuards } from nestjs/common; import { JwtAuthGuard } from ./auth.guard;Controller(protected) export class ProtectedController {UseGuards(JwtAuthGuard)Get()getProtectedResource() {return This is a protected resource;} }总结 通过以上步骤可以实现一个简单的用户登录和 JWT 身份验证系统。用户登录时会生成 token而在需要保护的接口中通过中间件校验 token 的有效性以决定是否放行请求。建议把 secret key 存放在环境变量中以增强安全性。
http://www.hkea.cn/news/14520110/

相关文章:

  • 做网站开发工具哪个好wordpress问答
  • 纪检监察网站建设方案指定网站建设项目规划书
  • 为什么一个网站外链那么多做网站软件的
  • 免费软件app下载大全正能量网站运动器材网站开发方案
  • 响应式旅游网站模板下载重庆唐卡装饰口碑怎么样
  • 贵阳网站建设推广公司企业所得税减免优惠政策
  • 免费的网站软件下载安装加盟培训网站建设
  • 广州天河区网站建设公司网页制作怎么上传到网站
  • 网站域名空间5个G的多少钱官方微信公众号怎么创建
  • 做网站费用做100个网站效果
  • 专业做网站厂家欧美设计网站
  • 网站的功能板块wordpress添加一个加载动画
  • 免费的企业网站建设手工制作小玩具简单又好玩
  • 化妆品网站建设推广方案国内十大高端定制西服品牌
  • 网站仿西安建站模板厂家
  • 设计国外网站成品网站管理系统 源码
  • 永州市开发建设投资有限公司网站石家庄互联网公司排行榜
  • wordpress 企业网站 教程杭州正规的网站建设公司
  • 网站备案提交资料揭阳做网站设计
  • 没网站怎么做京东联盟云落 wordpress主题
  • 开发一个网站需要几个人设计服务网站
  • 京东门户网站怎么做赚钱平台网站
  • 众筹网站制作右安门网站建设
  • 做一个代驾app需要多少钱石狮新站seo
  • 单仁资讯做网站怎样公司网站地址
  • 初中学习网站大全免费南通的网站建设
  • 网页网站的区别是什么怎么制作h5棋牌软件
  • 网站名称和备案公司名称不一样wordpress超链接无下划线
  • 怎么做dj网站推荐国外网站设计
  • 天津网站公司广东知名网站建设