2022-03-07 20:49:02 +08:00

75 lines
2.3 KiB
Go

package exampleservice
import (
"context"
"fmt"
service1 "goa_example/gen/service1"
"log"
"goa.design/goa/v3/security"
)
// Service1 service example implementation.
// The example methods log the requests and return zero values.
type service1srvc struct {
logger *log.Logger
}
// NewService1 returns the Service1 service implementation.
func NewService1(logger *log.Logger) service1.Service {
return &service1srvc{logger}
}
// BasicAuth implements the authorization logic for service "Service1" for the
// "basic" security scheme.
func (s *service1srvc) BasicAuth(ctx context.Context, user, pass string, scheme *security.BasicScheme) (context.Context, error) {
//
// TBD: add authorization logic.
//
// In case of authorization failure this function should return
// one of the generated error structs, e.g.:
//
// return ctx, myservice.MakeUnauthorizedError("invalid token")
//
// Alternatively this function may return an instance of
// goa.ServiceError with a Name field value that matches one of
// the design error names, e.g:
//
// return ctx, goa.PermanentError("unauthorized", "invalid token")
//
return ctx, fmt.Errorf("not implemented")
}
// JWTAuth implements the authorization logic for service "Service1" for the
// "jwt" security scheme.
func (s *service1srvc) JWTAuth(ctx context.Context, token string, scheme *security.JWTScheme) (context.Context, error) {
//
// TBD: add authorization logic.
//
// In case of authorization failure this function should return
// one of the generated error structs, e.g.:
//
// return ctx, myservice.MakeUnauthorizedError("invalid token")
//
// Alternatively this function may return an instance of
// goa.ServiceError with a Name field value that matches one of
// the design error names, e.g:
//
// return ctx, goa.PermanentError("unauthorized", "invalid token")
//
return ctx, fmt.Errorf("not implemented")
}
// Signin implements signin.
func (s *service1srvc) Signin(ctx context.Context, p *service1.SigninPayload) (res *service1.Creds, err error) {
res = &service1.Creds{}
s.logger.Print("service1.signin")
return
}
// 这是一个需要JWT认证的接口
func (s *service1srvc) Secure(ctx context.Context, p *service1.SecurePayload) (res string, err error) {
s.logger.Print("service1.secure")
return
}