You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.4 KiB
45 lines
1.4 KiB
package auth_test |
|
|
|
import ( |
|
"fmt" |
|
|
|
bm "go-common/library/net/http/blademaster" |
|
"go-common/library/net/http/blademaster/middleware/auth" |
|
"go-common/library/net/metadata" |
|
"go-common/library/net/rpc/warden" |
|
) |
|
|
|
// This example create a identify middleware instance and attach to several path, |
|
// it will validate request by specified policy and put extra information into context. e.g., `mid`. |
|
// It provides additional handler functions to provide the identification for your business handler. |
|
func Example() { |
|
authn := auth.New(&auth.Config{ |
|
Identify: &warden.ClientConfig{}, |
|
DisableCSRF: false, |
|
}) |
|
|
|
e := bm.DefaultServer(nil) |
|
|
|
// mark `/user` path as User policy |
|
e.GET("/user", authn.User, func(ctx *bm.Context) { |
|
mid := metadata.Int64(ctx, metadata.Mid) |
|
ctx.JSON(fmt.Sprintf("%d", mid), nil) |
|
}) |
|
// mark `/mobile` path as UserMobile policy |
|
e.GET("/mobile", authn.UserMobile, func(ctx *bm.Context) { |
|
mid := metadata.Int64(ctx, metadata.Mid) |
|
ctx.JSON(fmt.Sprintf("%d", mid), nil) |
|
}) |
|
// mark `/web` path as UserWeb policy |
|
e.GET("/web", authn.UserWeb, func(ctx *bm.Context) { |
|
mid := metadata.Int64(ctx, metadata.Mid) |
|
ctx.JSON(fmt.Sprintf("%d", mid), nil) |
|
}) |
|
// mark `/guest` path as Guest policy |
|
e.GET("/guest", authn.Guest, func(ctx *bm.Context) { |
|
mid := metadata.Int64(ctx, metadata.Mid) |
|
ctx.JSON(fmt.Sprintf("%d", mid), nil) |
|
}) |
|
|
|
e.Run(":18080") |
|
}
|
|
|