81 lines
2.2 KiB
Go
81 lines
2.2 KiB
Go
|
// Code generated by goa v3.6.0, DO NOT EDIT.
|
||
|
//
|
||
|
// Service1 service
|
||
|
//
|
||
|
// Command:
|
||
|
// $ goa gen goa_example/design
|
||
|
|
||
|
package service1
|
||
|
|
||
|
import (
|
||
|
"context"
|
||
|
|
||
|
"goa.design/goa/v3/security"
|
||
|
)
|
||
|
|
||
|
// The secured service exposes endpoints that require valid authorization
|
||
|
// credentials.
|
||
|
type Service interface {
|
||
|
// Signin implements signin.
|
||
|
Signin(context.Context, *SigninPayload) (res *Creds, err error)
|
||
|
// 这是一个需要JWT认证的接口
|
||
|
Secure(context.Context, *SecurePayload) (res string, err error)
|
||
|
}
|
||
|
|
||
|
// Auther defines the authorization functions to be implemented by the service.
|
||
|
type Auther interface {
|
||
|
// BasicAuth implements the authorization logic for the Basic security scheme.
|
||
|
BasicAuth(ctx context.Context, user, pass string, schema *security.BasicScheme) (context.Context, error)
|
||
|
// JWTAuth implements the authorization logic for the JWT security scheme.
|
||
|
JWTAuth(ctx context.Context, token string, schema *security.JWTScheme) (context.Context, error)
|
||
|
}
|
||
|
|
||
|
// ServiceName is the name of the service as defined in the design. This is the
|
||
|
// same value that is set in the endpoint request contexts under the ServiceKey
|
||
|
// key.
|
||
|
const ServiceName = "Service1"
|
||
|
|
||
|
// MethodNames lists the service method names as defined in the design. These
|
||
|
// are the same values that are set in the endpoint request contexts under the
|
||
|
// MethodKey key.
|
||
|
var MethodNames = [2]string{"signin", "secure"}
|
||
|
|
||
|
// Creds is the result type of the Service1 service signin method.
|
||
|
type Creds struct {
|
||
|
// JWT token
|
||
|
JWT string
|
||
|
// API Key
|
||
|
APIKey string
|
||
|
// OAuth2 token
|
||
|
OauthToken string
|
||
|
}
|
||
|
|
||
|
// SecurePayload is the payload type of the Service1 service secure method.
|
||
|
type SecurePayload struct {
|
||
|
// Whether to force auth failure even with a valid JWT
|
||
|
Fail *bool
|
||
|
// JWT used for authentication
|
||
|
Token string
|
||
|
}
|
||
|
|
||
|
// Credentials used to authenticate to retrieve JWT token
|
||
|
type SigninPayload struct {
|
||
|
// Username used to perform signin
|
||
|
Username string
|
||
|
// Password used to perform signin
|
||
|
Password string
|
||
|
}
|
||
|
|
||
|
// Credentials are invalid
|
||
|
type Unauthorized string
|
||
|
|
||
|
// Error returns an error description.
|
||
|
func (e Unauthorized) Error() string {
|
||
|
return "Credentials are invalid"
|
||
|
}
|
||
|
|
||
|
// ErrorName returns "unauthorized".
|
||
|
func (e Unauthorized) ErrorName() string {
|
||
|
return "unauthorized"
|
||
|
}
|