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

灰色系网站电子商务网站建设如何实施

灰色系网站,电子商务网站建设如何实施,做百度收录的网站,google的网站优化工具Gin-3 中间件编程及 JWT 身份认证 1. Gin 中间件概述 中间件是处理 HTTP 请求的函数#xff0c;可以在请求到达路由处理函数之前或之后对请求进行处理。 在 Gin 框架中#xff0c;中间件常用于处理日志记录、身份验证、权限控制等功能。 router : gin.Default() router.Us…Gin-3 中间件编程及 JWT 身份认证 1. Gin 中间件概述 中间件是处理 HTTP 请求的函数可以在请求到达路由处理函数之前或之后对请求进行处理。 在 Gin 框架中中间件常用于处理日志记录、身份验证、权限控制等功能。 router : gin.Default() router.Use(middleware) // 使用中间件中间件可以通过 Use 方法进行添加并且可以用于所有路由或特定路由组。 2. JWT 简介 https://github.com/golang-jwt/jwt JSON Web TokenJWT是一种用于认证和授权的标准。JWT 包含三个部分 头部 (Header)载荷 (Payload)签名 (Signature) JWT Base64UrlEncode(HEADER) . Base64UrlEncode(PAYLOAD) . Base64UrlEncode(SIGNATURE)JWT 的优点是自包含它在用户和服务之间传递信息时不依赖于存储。 由于 JWT 包含所有必要的用户信息服务端不需要保持用户的状态。 3. Gin 中的 JWT 身份认证实现 在 Gin 中实现 JWT 身份认证主要包含以下步骤 生成 JWT Token登录时生成 JWT Token。验证 JWT Token通过中间件验证请求中的 Token。访问受保护路由只有验证通过的用户才能访问受保护的路由。 3.1 JWT 生成与验证函数 通过以下代码您可以生成和验证 JWT Token package jwt_pluginimport github.com/golang-jwt/jwt/v5var key abcdefg123 // 用于加密和解密的密钥// 数据结构存储用户信息和标准声明 type Data struct {Name string json:nameAge int json:ageGender int json:genderjwt.RegisteredClaims }// 生成 JWT Token func Sign(data jwt.Claims) (string, error) {token : jwt.NewWithClaims(jwt.SigningMethodHS256, data)sign, err : token.SignedString([]byte(key))if err ! nil {return , err}return sign, nil }// 验证 JWT Token func Verify(sign string, data jwt.Claims) error {_, err : jwt.ParseWithClaims(sign, data, func(token *jwt.Token) (any, error) {return []byte(key), nil})return err }生成 JWT Token 时我们会使用 Sign 函数验证时使用 Verify 函数。 Sign 函数会将用户信息载荷和签名一起返回Verify 函数用于验证 JWT Token 是否有效。 3.2 登录接口实现 用户登录时通过 Login 函数生成 JWT Token并返回给客户端。 package loginimport (github.com/gin-gonic/gingolang13-gin/jwt_pluginnet/httptime )func Login(c *gin.Context) {// 用户信息及 JWT 载荷data : jwt_plugin.Data{Name: nick,Age: 18,Gender: 1,RegisteredClaims: jwt.RegisteredClaims{ExpiresAt: jwt.NewNumericDate(time.Now().Add(time.Hour)),IssuedAt: jwt.NewNumericDate(time.Now()),NotBefore: jwt.NewNumericDate(time.Now()),},}// 生成 JWT Tokensign, err : jwt_plugin.Sign(data)if err ! nil {c.JSON(http.StatusInternalServerError, gin.H{error: err.Error(),})return}// 返回 JWT Tokenc.JSON(http.StatusOK, gin.H{access_token: sign,}) }登录成功后系统会返回一个包含用户信息和有效期的 JWT Token。 3.3 JWT 身份验证中间件 package middlewareimport (github.com/gin-gonic/gingolang13-gin/jwt_pluginnet/http )func Auth() gin.HandlerFunc {return func(c *gin.Context) {accessToken : c.Request.Header.Get(access_token) // 获取请求头中的 Tokendata : jwt_plugin.Data{}err : jwt_plugin.Verify(accessToken, data) // 验证 Tokenif err ! nil {c.JSON(http.StatusForbidden, gin.H{error: 身份认证失败,})c.Abort() // 中止请求}c.Set(auth_info, data) // 将用户信息存储在上下文中c.Next() // 继续后续处理} }身份验证中间件 Auth 会从请求头中提取 JWT Token 并进行验证。如果验证失败返回 403 错误否则将用户信息存储到上下文供后续路由使用。 4. CORS 中间件 CORS跨域资源共享允许服务器指定哪些源Origin可以访问资源。以下是设置 CORS 中间件的代码 package middlewareimport (github.com/gin-contrib/corsgithub.com/gin-gonic/gin )func Cors() gin.HandlerFunc {return cors.New(cors.Config{AllowAllOrigins: true,AllowHeaders: []string{Origin, Content-Length, Content-Type,},AllowMethods: []string{GET, POST, PUT, DELETE, HEAD, OPTIONS,},}) }CORS 中间件配置允许来自任何来源的请求并且可以处理指定的 HTTP 方法和头部。 5. 路由初始化与中间件使用 在 Gin 中可以通过 Use 方法将中间件添加到路由组中以下是一个例子 func InitRoutes(r *gin.Engine) { api : r.Group(/api) api.Use(middleware.Cors(), middleware.Auth()) // 使用 CORS 和 JWT 验证中间件InitCourse(api) InitUser(api) InitUpload(api) notAuthApi : r.Group(/api) notAuthApi.Use(middleware.Cors()) InitLogin(notAuthApi) // 不需要身份验证的路由 }总结 概念描述代码示例Gin 中间件中间件是一个函数用来处理 HTTP 请求。在请求进入路由处理函数之前或之后执行某些操作。router.Use(middleware)JWT (JSON Web Token)一种用于认证和授权的标准格式通过三个部分组成头部、载荷和签名。它具有自包含特性可以在分布式系统中使用。token : jwt.NewWithClaims(jwt.SigningMethodHS256, data)JWT 生成通过载荷和密钥生成 JWT Token。sign, err : jwt_plugin.Sign(data)JWT 验证通过 Token 验证用户身份确保请求的合法性。err : jwt_plugin.Verify(accessToken, data)身份认证中间件在请求到达目标路由之前验证请求中的 JWT Token确保只有通过验证的请求才能继续处理。func Auth() gin.HandlerFunc { return func(c *gin.Context) { ... } }CORS 中间件解决浏览器跨域问题允许不同域的请求访问服务器资源。func Cors() gin.HandlerFunc { return cors.New(cors.Config{ AllowAllOrigins: true }) }路由组将具有共同前缀的路由放在一个组中方便统一管理和中间件的应用。api : r.Group(/api)JWT 载荷JWT 中的数据部分包含用户信息和其他元数据。可以自定义内容也可以使用预定义的注册声明如过期时间。RegisteredClaims: jwt.RegisteredClaims{ ExpiresAt: jwt.NewNumericDate(time.Now().Add(time.Hour)) }路由配置定义与中间件、请求处理函数相关的路由。InitLogin(notAuthApi) 表格解释 Gin 中间件 是一类用于在路由处理函数执行前或后处理请求的函数常见的中间件包括身份认证、中间件控制等。JWT 是一种 JSON 格式的认证方式包含头部、载荷和签名适用于分布式系统解决了服务端无状态的问题。JWT 生成和验证 是通过特定的密钥和载荷数据生成的可以通过库函数轻松实现生成和验证操作。身份认证中间件 通过在请求处理中拦截请求并验证 JWT Token 是否有效来确保用户身份的合法性。CORS 中间件 允许不同来源的客户端发起请求解决跨域问题常见于前后端分离的应用场景。路由组 可以帮助组织和管理具有共同特征的路由通过给路由组添加中间件使得多个路由共享特定的功能。JWT 载荷 中的数据部分存储的是用户信息以及与身份认证相关的信息如过期时间等。 JWT载荷 JWT 载荷部分是什么是否可有可无 JWT 的载荷部分是存储在 Token 中的实际信息它包含了 声明claims这些声明通常用于存储用户信息、权限、Token 的有效期等。 JWT 载荷部分包含以下几种类型的声明 注册声明Registered Claims如 exp过期时间、iat签发时间、sub主题等。公共声明Public Claims可以自定义用于表示用户信息或其他数据。私有声明Private Claims由双方约定用于传递的信息。 是否可有可无 如果只是需要传递一个简单的标识符如用户 ID那么可以简化载荷部分。 但通常JWT 的载荷是不可或缺的因为它包含了 Token 的有效期、权限等重要信息。 如果载荷部分为空或缺少必要的字段Token 的使用价值将大大降低。 https://github.com/0voice
文章转载自:
http://www.morning.fflnw.cn.gov.cn.fflnw.cn
http://www.morning.mkydt.cn.gov.cn.mkydt.cn
http://www.morning.ylyzk.cn.gov.cn.ylyzk.cn
http://www.morning.rnzgf.cn.gov.cn.rnzgf.cn
http://www.morning.ybshj.cn.gov.cn.ybshj.cn
http://www.morning.kjjbz.cn.gov.cn.kjjbz.cn
http://www.morning.yjprj.cn.gov.cn.yjprj.cn
http://www.morning.gbnsq.cn.gov.cn.gbnsq.cn
http://www.morning.xqtqm.cn.gov.cn.xqtqm.cn
http://www.morning.qcnk.cn.gov.cn.qcnk.cn
http://www.morning.zlfxp.cn.gov.cn.zlfxp.cn
http://www.morning.rfxyk.cn.gov.cn.rfxyk.cn
http://www.morning.fcwxs.cn.gov.cn.fcwxs.cn
http://www.morning.ynstj.cn.gov.cn.ynstj.cn
http://www.morning.fpkdd.cn.gov.cn.fpkdd.cn
http://www.morning.dongyinet.cn.gov.cn.dongyinet.cn
http://www.morning.dpqwq.cn.gov.cn.dpqwq.cn
http://www.morning.rltsx.cn.gov.cn.rltsx.cn
http://www.morning.jtdrz.cn.gov.cn.jtdrz.cn
http://www.morning.tktyh.cn.gov.cn.tktyh.cn
http://www.morning.mmsf.cn.gov.cn.mmsf.cn
http://www.morning.spftz.cn.gov.cn.spftz.cn
http://www.morning.dlhxj.cn.gov.cn.dlhxj.cn
http://www.morning.yfmlj.cn.gov.cn.yfmlj.cn
http://www.morning.gtwtk.cn.gov.cn.gtwtk.cn
http://www.morning.nxfwf.cn.gov.cn.nxfwf.cn
http://www.morning.qyqdz.cn.gov.cn.qyqdz.cn
http://www.morning.bdfph.cn.gov.cn.bdfph.cn
http://www.morning.lbcbq.cn.gov.cn.lbcbq.cn
http://www.morning.ljqd.cn.gov.cn.ljqd.cn
http://www.morning.xwzsq.cn.gov.cn.xwzsq.cn
http://www.morning.frtb.cn.gov.cn.frtb.cn
http://www.morning.tsnq.cn.gov.cn.tsnq.cn
http://www.morning.ywndg.cn.gov.cn.ywndg.cn
http://www.morning.fcpjq.cn.gov.cn.fcpjq.cn
http://www.morning.lctrz.cn.gov.cn.lctrz.cn
http://www.morning.ffydh.cn.gov.cn.ffydh.cn
http://www.morning.pgxjl.cn.gov.cn.pgxjl.cn
http://www.morning.dmtbs.cn.gov.cn.dmtbs.cn
http://www.morning.gwsdt.cn.gov.cn.gwsdt.cn
http://www.morning.poapal.com.gov.cn.poapal.com
http://www.morning.lczxm.cn.gov.cn.lczxm.cn
http://www.morning.qxkjy.cn.gov.cn.qxkjy.cn
http://www.morning.rsqpc.cn.gov.cn.rsqpc.cn
http://www.morning.owenzhi.com.gov.cn.owenzhi.com
http://www.morning.rdnjc.cn.gov.cn.rdnjc.cn
http://www.morning.yqjjn.cn.gov.cn.yqjjn.cn
http://www.morning.kwnnx.cn.gov.cn.kwnnx.cn
http://www.morning.hsklc.cn.gov.cn.hsklc.cn
http://www.morning.rfjmy.cn.gov.cn.rfjmy.cn
http://www.morning.xptkl.cn.gov.cn.xptkl.cn
http://www.morning.jsphr.cn.gov.cn.jsphr.cn
http://www.morning.xlztn.cn.gov.cn.xlztn.cn
http://www.morning.ydtdn.cn.gov.cn.ydtdn.cn
http://www.morning.fhlfp.cn.gov.cn.fhlfp.cn
http://www.morning.hylbz.cn.gov.cn.hylbz.cn
http://www.morning.tbbxn.cn.gov.cn.tbbxn.cn
http://www.morning.mfrb.cn.gov.cn.mfrb.cn
http://www.morning.bpmtg.cn.gov.cn.bpmtg.cn
http://www.morning.rjyd.cn.gov.cn.rjyd.cn
http://www.morning.lrylj.cn.gov.cn.lrylj.cn
http://www.morning.brqjs.cn.gov.cn.brqjs.cn
http://www.morning.ndtmz.cn.gov.cn.ndtmz.cn
http://www.morning.lchtb.cn.gov.cn.lchtb.cn
http://www.morning.gfkb.cn.gov.cn.gfkb.cn
http://www.morning.phwmj.cn.gov.cn.phwmj.cn
http://www.morning.fesiy.com.gov.cn.fesiy.com
http://www.morning.hgscb.cn.gov.cn.hgscb.cn
http://www.morning.qdrhf.cn.gov.cn.qdrhf.cn
http://www.morning.msfqt.cn.gov.cn.msfqt.cn
http://www.morning.kpnpd.cn.gov.cn.kpnpd.cn
http://www.morning.gwkwt.cn.gov.cn.gwkwt.cn
http://www.morning.pcqxr.cn.gov.cn.pcqxr.cn
http://www.morning.zqzzn.cn.gov.cn.zqzzn.cn
http://www.morning.lsmnn.cn.gov.cn.lsmnn.cn
http://www.morning.dnphd.cn.gov.cn.dnphd.cn
http://www.morning.kqpxb.cn.gov.cn.kqpxb.cn
http://www.morning.ltdrz.cn.gov.cn.ltdrz.cn
http://www.morning.qnlbb.cn.gov.cn.qnlbb.cn
http://www.morning.psxfg.cn.gov.cn.psxfg.cn
http://www.tj-hxxt.cn/news/245600.html

相关文章:

  • 江宁交通建设集团网站学习建网站玩网站建设学习
  • 贵阳市门户网站吉林省建设部网站
  • 建设运营网站邯郸网络教研平台
  • 保定php网站制作苏州优化费用
  • 模板网站试用验证平台 wordpress
  • 石家庄网站备案建设网站分析
  • 惠州公司做网站普洱市住房和城乡建设局网站
  • 旅游网站开发指导软件开发者大会
  • 咸宁网站建设哪家专业wordpress 好用的编辑器
  • 网站排名必做阶段性seo策略做网站昆明
  • 对百度网站进行分析前端网站开发流程入门
  • 公主岭网站建设网上做网站网站
  • 学校 网站 建设 目的广告设计免费软件
  • php网站开发遇到的问题购物网站开发报告
  • 网站建设难点分析最优的锦州网站建设
  • 成都公司网站手机网站用二级目录做的弊端
  • 做网站基本费用大概需要多少中国十大电商培训机构
  • 重庆平台网站建设找哪家网络舆情研判分析报告
  • 做图片网站编辑标题怎么写能吸引小说网站上的广告在哪做
  • 现在建设网站落后了数据网站
  • 衡水做网站电话推荐大良营销网站建设
  • 北京建设网站公司网站郴州网络营销推广
  • 河南网站排名优化做php网站时如何建立数据库
  • 太原网站排名推广保亭交通工程建设局网站
  • 手机网站制作设计优化法治化营商环境
  • 四平市建设局网站遵义市建设局网站
  • 做黑彩网站图片网站建设及推广图片
  • 快递网站怎么做的etw做的网站
  • 查询域名网站用什么工具可以创建网页
  • 单位网站建设要记入无形资产吗网站用社交图标做链接侵权吗