Skip to content

Instantly share code, notes, and snippets.

@Casper-Mars
Created October 3, 2021 03:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Casper-Mars/b1a2ddb1cfd3db30522fac537c6bdc82 to your computer and use it in GitHub Desktop.
Save Casper-Mars/b1a2ddb1cfd3db30522fac537c6bdc82 to your computer and use it in GitHub Desktop.
Demo for kratos auth
package auth
import (
"context"
"fmt"
"github.com/go-kratos/kratos/v2/middleware"
)
func Server() middleware.Middleware {
return func(handler middleware.Handler) middleware.Handler {
return func(ctx context.Context, req interface{}) (interface{}, error) {
fmt.Println("Enter auth middleware")
return handler(ctx, req)
}
}
}
http.Middleware(
recovery.Recovery(),
tracing.Server(),
logging.Server(logger),
metrics.Server(),
validate.Validator(),
selector.Server(
// 认证
jwt.Server(keyFunc),
// 鉴权
authpkg.Server(),
).
Match(func(operation string) bool {
// 白名单
r, _ := regexp.Compile("/interface.v1.Auth/.*")
if err != nil {
// 自定义错误处理
return true
}
return r.FindString(operation) != operation
}).
Build(),
),
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment