为了账号安全,请及时绑定邮箱和手机立即绑定

连接到 Go Gin 时的 Angular 8 CORS

连接到 Go Gin 时的 Angular 8 CORS

Go
凤凰求蛊 2023-08-14 17:05:32
我用 Golang 的Gin 框架和JWT 中间件为其构建了一个后端。这是自述文件中的官方示例,我使用了它:主程序package 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),            }        },
查看完整描述

1 回答

?
蛊毒传说

TA贡献1895条经验 获得超3个赞

更改AllowHeaders: []string{"Origin"}AllowHeaders: []string{"content-type"}



查看完整回答
反对 回复 2023-08-14
  • 1 回答
  • 0 关注
  • 146 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号