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

哪些网站可以做爬虫实验重庆新闻频道直播在线观看

哪些网站可以做爬虫实验,重庆新闻频道直播在线观看,网络营销在我国的发展历程,3d效果图制作软件使用 github.com/golang-jwt/jwt 实现 JWT(JSON Web Token)可以有效地进行用户身份验证,这个功能往往在接口前后端分离的应用中经常用到。以下是一个基本的示例,演示如何在 Gin 框架中实现 JWT 认证。 目录结构 /hello-gin │ ├── cmd/ …

使用 github.com/golang-jwt/jwt 实现 JWT(JSON Web Token)可以有效地进行用户身份验证,这个功能往往在接口前后端分离的应用中经常用到。以下是一个基本的示例,演示如何在 Gin 框架中实现 JWT 认证。

目录结构

/hello-gin
│
├── cmd/
│   └── main.go
├── api/
│   ├── routes.go
│   └── auth.go
└── middleware/└── jwt.go
└── models/└── user.go

1. 安装依赖

首先,你需要安装 github.com/golang-jwt/jwt 包:

go get github.com/golang-jwt/jwt

2. cmd/main.go

主程序,设置路由和中间件。

package mainimport ("hello-gin/api""github.com/gin-gonic/gin"
)func main() {r := gin.Default()// 注册路由api.RegisterRoutes(r)// 启动服务器r.Run(":8080")
}

3. api/routes.go

定义路由,包括登录和受保护的资源。

package apiimport ("github.com/gin-gonic/gin""hello-gin/middleware"
)func RegisterRoutes(r *gin.Engine) {r.POST("/login", Login)// 受保护的路由protected := r.Group("/protected")protected.Use(middleware.JWTAuthMiddleware()){protected.GET("/hello", Hello)}
}

4. api/auth.go

处理登录和生成 JWT 的逻辑。

package api
import ("net/http""github.com/gin-gonic/gin""github.com/golang-jwt/jwt""time"
)var jwtSecret = []byte("your_secret_key")// User 表示一个简单的用户结构
type User struct {Username string `json:"username"`Password string `json:"password"`
}// Login 处理用户登录并返回 JWT
func Login(c *gin.Context) {var user Userif err := c.ShouldBindJSON(&user); err != nil {c.JSON(http.StatusBadRequest, gin.H{"error": "Invalid input"})return}// 这里简单的硬编码验证,实际使用中应查询数据库if user.Username != "testuser" || user.Password != "testpassword" {c.JSON(http.StatusUnauthorized, gin.H{"error": "Invalid credentials"})return}// 生成 JWTtoken := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{"username": user.Username,"exp":      time.Now().Add(time.Hour * 72).Unix(),})tokenString, err := token.SignedString(jwtSecret)if err != nil {c.JSON(http.StatusInternalServerError, gin.H{"error": "Could not generate token"})return}c.JSON(http.StatusOK, gin.H{"token": tokenString})
}// Hello 是一个受保护的路由示例
func Hello(c *gin.Context) {c.JSON(http.StatusOK, gin.H{"message": "Hello, authenticated user!"})
}

5. middleware/jwt.go

实现 JWT 验证中间件。

package middlewareimport ("net/http""github.com/gin-gonic/gin""github.com/golang-jwt/jwt"
)var jwtSecret = []byte("your_secret_key")// JWTAuthMiddleware 验证 JWT 的中间件
func JWTAuthMiddleware() gin.HandlerFunc {return func(c *gin.Context) {tokenString := c.Request.Header.Get("Authorization")if tokenString == "" {c.JSON(http.StatusUnauthorized, gin.H{"error": "No token provided"})c.Abort()return}token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {return nil, http.ErrNotSupported}return jwtSecret, nil})if err != nil || !token.Valid {c.JSON(http.StatusUnauthorized, gin.H{"error": "Invalid token"})c.Abort()return}// 令牌有效,继续处理请求c.Next()}
}

6. 测试应用

在项目根目录下运行:

go run cmd/main.go
登录

使用 Postman 或 cURL 发送 POST 请求到 http://localhost:8080/login,请求体示例:

{"username": "testuser","password": "testpassword"
}

如果登录成功,将返回一个 JWT:

{"token": "your_jwt_token"
}
访问受保护的资源

使用返回的 JWT 作为 Authorization 头部的值,发送 GET 请求到 http://localhost:8080/protected/hello

curl -H "Authorization: your_jwt_token" http://localhost:8080/protected/hello

如果 JWT 有效,将返回:

{"message": "Hello, authenticated user!"
}

在这里插入图片描述

总结

这个示例展示了如何在 Gin 框架中实现 JWT 认证,包括用户登录、生成 JWT 和验证 JWT 的中间件。你可以根据需求进行扩展,例如从数据库获取用户信息和密码验证等。

http://www.yayakq.cn/news/90374/

相关文章:

  • 网站建设 石景山房地产开发资质
  • 网站服务器租金企业网站的特点是什么
  • seo网站关键词优化排名顺德顺的网站建设
  • 甘肃省建设工程网上投标网站上海网页设计电话
  • 江苏省工程建设招标网站平台设计是什么意思
  • 广州建设工程信息网站还有哪些平台能免费营销产品
  • 搭建网站硬件要求什么是网站降权处理
  • 有了域名如何做网站邢台手机网站建设地方
  • 提供东莞网站建设价格网站宣传推广
  • 大英县住房和城乡建设局网站iis发布网站慢
  • 景区网站建设案例网站开发的技术路线是什么
  • 阿里云网站建设的实训报告华为手机商城
  • 建设一个教程视频网站需要什么资质国内新闻最新消息今天简短
  • 中国档案网站建设现状研究成都销售型网站
  • 网站建设需要度搜去中国建设银行个人网站登录
  • 网站开发管理制度阳高网站建设
  • 合肥网站建设百姓网常州自助建站
  • 厦门建设企业网站建设3d建模素材网
  • php做商城网站建设新国标小区网络建设
  • 分分彩做号网站小米发布会直播在线观看
  • 唐山市住房和诚乡建设局网站求个网站
  • 免费咨询疾病的网站wordpress多功能模板
  • 无极网站建设定制网站建设公司找哪家好
  • 做景观要知道哪些网站商务网站建设与推广实训报告
  • 网站开发流程分析张家口市住房和城乡建设局网站
  • 买了一个域名怎么做网站自己电脑做服务器网站吗
  • 安徽东皖建设集团有限公司网站丰顺网站建设
  • 便捷的网站建设软件建设银行网站 开户行怎么查询
  • 在线购物商城的设计与实现网站关键词优化难不难
  • 网站建设是什么意思做旅游攻略什么网站最好