我用 Golang 的Gin 框架和JWT 中间件构建了一个后端。这是我使用的自述文件中的官方示例:main.gopackage mainimport ( "log" "net/http" "os" "time" "github.com/appleboy/gin-jwt/v2" "github.com/gin-gonic/gin")type login struct { Username string `form:"username" json:"username" binding:"required"` Password string `form:"password" json:"password" binding:"required"`}var identityKey = "id"func helloHandler(c *gin.Context) { claims := jwt.ExtractClaims(c) user, _ := c.Get(identityKey) c.JSON(200, gin.H{ "userID": claims[identityKey], "userName": user.(*User).UserName, "text": "Hello World.", })}// User demotype User struct { UserName string FirstName string LastName string}func main() { port := os.Getenv("PORT") r := gin.New() r.Use(gin.Logger()) r.Use(gin.Recovery()) if port == "" { port = "8000" } // the jwt middleware authMiddleware, err := jwt.New(&jwt.GinJWTMiddleware{ Realm: "test zone", Key: []byte("secret key"), Timeout: time.Hour, MaxRefresh: time.Hour, IdentityKey: identityKey, PayloadFunc: func(data interface{}) jwt.MapClaims { if v, ok := data.(*User); ok { return jwt.MapClaims{ identityKey: v.UserName, } } return jwt.MapClaims{} }, IdentityHandler: func(c *gin.Context) interface{} { claims := jwt.ExtractClaims(c) return &User{ UserName: claims[identityKey].(string), }我 Angular 8 中的身份验证服务如下所示:但这在 Chrome 中给了我一条错误消息:Access to XMLHttpRequest at 'http://127.0.0.1:8000/api/login' from origin 'http://localhost:4200' has been blocked by CORS policy: Request header field content-type is not allowed by Access-Control-Allow-Headers in preflight response.不过,在控制台中,Gin 返回状态码 204。我重新启动了ng serve,但仍然出现错误(我根据代理文件中的配置将auth.service和main.go中的url改为/api/login)。我在这里做错了什么?
- 1 回答
- 0 关注
- 214 浏览
添加回答
举报
0/150
提交
取消
