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

手机上可以创建网站吗个人网站做淘宝客教程

手机上可以创建网站吗,个人网站做淘宝客教程,湘潭seo公司,谷歌浏览器 免费下载使用 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/14487298/

相关文章:

  • 泰州外贸网站建设wordpress前端空白
  • 企业网站 域名注册wordpress跑步
  • 哈尔滨网络优化推广公司wordpress 纯代码seo
  • 萧山建设局网站伊春网络推广
  • 网站搭建怎么收费dw做网站导航
  • 百度网站优化指南形象墙设计
  • 苏州网站建设方案策划宁波seo网络推广代理公司
  • 网站建设分为哪几种类型企业建站公司推荐
  • 江苏网站推广网络模板网站不利于seo吗
  • 合同 制作 网站如何查一个网站有没有做外链
  • 中国建设银行个人网上银行网站网站建设应用程序开发
  • 建设彩票网站如何盈利wordpress o2o插件
  • 环保网站怎么做推广普通话于1982年写入
  • 网站开发形式选择建设银行e路通网站
  • 济南网站建设(选 聚搜网络)如何制作小程序视频教学
  • 个人网站可以做咨询吗微网站建设收费
  • 广州网站制作怎么选青岛全网推广怎么做
  • 东坑镇做网站wordpress主题制作技巧
  • 网站建设第三方验收收费标准wordpress15天教
  • 国际贸易电子商务网站建设流程wordpress 加速访问
  • 我要自学网网站wordpress导航站模板
  • 网站开发不用框架推广app
  • 群晖 做网站文创产品设计调研
  • 适合网站开发的浏览器企业营销活动有哪些
  • 企业网站模板素材wordpress名片模板下载
  • 做网站要多少像素网站开发项目提成
  • 帮助做职业规划的网站做设计需要素材的常用网站有哪些
  • 网站注做营销型网站一般要多少钱
  • 网站列表页内容临沂网站制作
  • 绵阳新农网的网站是哪个公司做的甘肃省建设厅官方网站信息网