您的位置:58脚本 > iris中间件验证jwt iris 中间件

iris中间件验证jwt iris 中间件

2023-03-24 09:32 iris教程

iris中间件验证jwt iris 中间件

iris中间件验证jwt

iris中间件验证jwt是一种用于验证用户身份的安全机制,它可以帮助开发者更好地保护应用程序的数据和资源。JWT(JSON Web Token)是一种基于JSON的开放标准(RFC 7519),它允许将声明编码为JSON对象并使用数字签名进行验证。

Iris中间件验证jwt的步骤如下:

// 创建iris实例
app := iris.New() 
// 注册jwt中间件 
app.Use(middleware.JwtHandler().Serve) 
// 设置jwt配置 
app.Configure(middleware.JwtConfigure) 
// 路由处理函数 
app.Get("/", func(ctx iris.Context) { 	// 获取jwt信息 	claims := ctx.Values().Get("jwt").(*middleware.Claims) 	// 验证通过后处理业务逻辑 })   // 启动服务 app.Run(iris.Addr(":8080")) 

iris 中间件

使用空白中间件替换默认中间件

app := iris.New()

替换为

app := iris.Default()

使用中间件

package main

import (
    "github.com/kataras/iris/v12"

    "github.com/kataras/iris/v12/middleware/recover"
)

func main() {
    // Creates an iris application without any middleware by default
    app := iris.New()

    // Global middleware using `UseRouter`.
    //
    // Recovery middleware recovers from any panics and writes a 500 if there was one.
    app.UseRouter(recover.New())

    // Per route middleware, you can add as many as you desire.
    app.Get("/benchmark", MyBenchLogger(), benchEndpoint)

    // Authorization group
    // authorized := app.Party("/", AuthRequired())
    // exactly the same as:
    authorized := app.Party("/")
    // per group middleware! in this case we use the custom created
    // AuthRequired() middleware just in the "authorized" group.
    authorized.Use(AuthRequired())
    {
        authorized.Post("/login", loginEndpoint)
        authorized.Post("/submit", submitEndpoint)
        authorized.Post("/read", readEndpoint)

        // nested group
        testing := authorized.Party("testing")
        testing.Get("/analytics", analyticsEndpoint)
    }

    // Listen and serve on 0.0.0.0:8080
    app.Listen(":8080")
}

中间件中的goroutine

在中间件或处理程序中启动新的 Goroutines 时,您不应该使用其中的原始上下文,您必须使用只读副本。

func main() {
    app := iris.Default()

    app.Get("/long_async", func(ctx iris.Context) {
        // create a clone to be used inside the goroutine
        ctxCopy := ctx.Clone()
        go func() {
            // simulate a long task with time.Sleep(). 5 seconds
            time.Sleep(5 * time.Second)

            // note that you are using the copied context "ctxCopy", IMPORTANT
            log.Printf("Done! in path: %s", ctxCopy.Path())
        }()
    })

    app.Get("/long_sync", func(ctx iris.Context) {
        // simulate a long task with time.Sleep(). 5 seconds
        time.Sleep(5 * time.Second)

        // since we are NOT using a goroutine, we do not have to copy the context
        log.Printf("Done! in path: %s", ctx.Path())
    })

    app.Listen(":8080")
}


阅读全文
以上是58脚本为你收集整理的iris中间件验证jwt iris 中间件全部内容。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。
相关文章
© 2024 58脚本 58jiaoben.com 版权所有 联系我们
桂ICP备12005667号-28 Powered by CMS