gitee.com/woood2/luca@v1.0.4/cmd/micro/pkg/check_token.go (about) 1 package pkg 2 3 import ( 4 "context" 5 "gitee.com/woood2/luca/cmd/micro/internal/grpc/pb" 6 "gitee.com/woood2/luca/cmd/micro/internal/param" 7 "gitee.com/woood2/luca/internal/errcode" 8 "github.com/go-kit/kit/endpoint" 9 grpctransport "github.com/go-kit/kit/transport/grpc" 10 gr "google.golang.org/grpc" 11 ) 12 13 /** 14 [common errors] 15 micro errors 16 Non-enumerated errors: validate|network|server|hystrix|unknown 17 18 [business errors] 19 InvalidToken 20 */ 21 func (c *LucaClient) CheckToken(ctx context.Context, token string) (ok bool, error error) { 22 req := ¶m.CheckTokenRequest{ 23 Token: token, 24 } 25 resp, err := c.checkTokenEndpoint(ctx, req) 26 if err != nil { 27 return false, err 28 } 29 r := resp.(*errcode.Resp) 30 if r.ErrCode != "" { 31 return false, code2Err(r.ErrCode) 32 } else { 33 return r.Data.(bool), nil 34 } 35 } 36 37 func encodeCheckTokenRequest(_ context.Context, r interface{}) (interface{}, error) { 38 return &pb.CheckTokenRequest{ 39 Token: r.(*param.CheckTokenRequest).Token, 40 }, nil 41 } 42 43 func decodeCheckTokenResponse(_ context.Context, r interface{}) (interface{}, error) { 44 resp := r.(*pb.CheckTokenResponse) 45 return &errcode.Resp{ 46 ErrCode: resp.ErrCode, 47 ErrMsg: resp.ErrMsg, 48 Data: resp.Data, 49 }, nil 50 } 51 52 func makeCheckTokenClientEndpoint(conn *gr.ClientConn, instance string, options ...grpctransport.ClientOption) endpoint.Endpoint { 53 serviceName := "luca.Default" 54 method := "CheckToken" 55 var e endpoint.Endpoint 56 { 57 e = grpctransport.NewClient( 58 conn, 59 serviceName, 60 method, 61 encodeCheckTokenRequest, 62 decodeCheckTokenResponse, 63 pb.CheckTokenResponse{}, 64 options..., 65 ).Endpoint() 66 } 67 return e 68 }