biz

package
v0.0.0-...-f780273 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 10, 2025 License: MIT Imports: 22 Imported by: 0

README

Biz

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrTokenInvalid = &mid.HTTPError{Msg: "token invalid", Status: int(codes.Unauthenticated)}
	ErrArgsInvalid  = &mid.HTTPError{Msg: "args invalid", Status: int(codes.InvalidArgument)}
)
View Source
var (
	ErrUserNotFound = &mid.HTTPError{Msg: "user not found", Status: 400}
)

ProviderSet is biz providers.

Functions

func GetHead

func GetHead(ctx context.Context, proto IProto) *common.BaseHead

func NewDingtalkService

func NewDingtalkService(data *conf.Data) (*rdingtalk.DingTalkService, error)

Types

type AuthBiz

type AuthBiz struct {
	// contains filtered or unexported fields
}

func NewAuthBiz

func NewAuthBiz(cdata *conf.Data, repoAuth AuthRepoI, logger log.Logger, dingTalk *rdingtalk.DingTalkService, repoUserData UserDataRepoI) *AuthBiz

func (*AuthBiz) Auth

func (biz *AuthBiz) Auth(ctx context.Context, req *v1.AuthReq) (*v1.AuthReply, error)

func (*AuthBiz) AuthUser

func (biz *AuthBiz) AuthUser(handler middleware.Handler) middleware.Handler

func (*AuthBiz) Callback

func (biz *AuthBiz) Callback(ctx context.Context, req *v1.CallbackReq) (*v1.UserSimple, error)

func (*AuthBiz) GetPermissions

func (biz *AuthBiz) GetPermissions(ctx context.Context, req *v1.PermissionsReq) (*v1.PermissionsReply, error)

func (*AuthBiz) GetPublicContent

func (biz *AuthBiz) GetPublicContent(ctx context.Context, req *v1.PublicContentReq) (*v1.PublicContentReply, error)

func (*AuthBiz) Login

func (biz *AuthBiz) Login(ctx context.Context, req *v1.LoginReq) (*v1.User, error)

func (*AuthBiz) Logout

func (biz *AuthBiz) Logout(ctx context.Context, req *v1.LogoutReq) (*v1.LogoutReply, error)

func (*AuthBiz) NewWhiteListMatcher

func (biz *AuthBiz) NewWhiteListMatcher() selector.MatchFunc

NewWhiteListMatcher 创建jwt白名单

type AuthRepoI

type AuthRepoI interface{}

AuthRepoI is a Greater repo.

type AuthUser

type AuthUser struct {
	Path   string
	Method string
	Domain string
	Token  string

	IssTime     string
	AuthorityId string
}

func (*AuthUser) CreateAccessJwtToken

func (su *AuthUser) CreateAccessJwtToken(secretKey []byte) string

CreateAccessJwtToken 使用给定的密钥为AuthUser创建一个JWT访问令牌。

func (*AuthUser) GetAction

func (su *AuthUser) GetAction() string

func (*AuthUser) GetDomain

func (su *AuthUser) GetDomain() string

func (*AuthUser) GetObject

func (su *AuthUser) GetObject() string

func (*AuthUser) GetSubject

func (su *AuthUser) GetSubject() string

func (*AuthUser) ParseAccessJwtToken

func (su *AuthUser) ParseAccessJwtToken(claims jwtv5.Claims) error

ParseAccessJwtToken 从JWT Claims解析并填充到AuthUser中。

func (*AuthUser) ParseAccessJwtTokenFromString

func (su *AuthUser) ParseAccessJwtTokenFromString(token string, secretKey []byte) error

ParseAccessJwtTokenFromString 解析给定的JWT令牌字符串,并填充到AuthUser中。

func (*AuthUser) ParseFromContext

func (su *AuthUser) ParseFromContext(ctx context.Context, secretKey []byte) error

ParseFromContext 从上下文中解析出JWT Claims和操作信息,并填充到AuthUser中。

type Biz

type Biz struct {
	// contains filtered or unexported fields
}

func NewBiz

func NewBiz(
	data *conf.Data,
	dingTalk *rdingtalk.DingTalkService,
	authBiz *AuthBiz,
) (*Biz, func(), error)

type IProto

type IProto interface {
	GetHead() *common.BaseHead
}

type UserData

type UserData struct {
	Id              primitive.ObjectID `json:"id" bson:"_id"`
	AvatarUrl       string             `json:"avatar_url" bson:"avatarUrl"`
	Mobile          string             `json:"mobile" bson:"mobile"`
	Email           string             `json:"email" bson:"email"`
	Nick            string             `json:"nick" bson:"nick"`
	DingtalkOpenId  string             `json:"dingtalkOpenId" bson:"dingtalkOpenId"`
	DingtalkUnionId string             `json:"dingtalkUnionId" bson:"dingtalkUnionId"`
}

type UserDataBiz

type UserDataBiz struct {
	// contains filtered or unexported fields
}

func NewUserDataBiz

func NewUserDataBiz(cdata *conf.Data, repoUserData UserDataRepoI, logger log.Logger, dingTalk *rdingtalk.DingTalkService) *UserDataBiz

type UserDataRepoI

type UserDataRepoI interface {
	StorageByDingTalkOpenId(user *UserData) error
	FindByID(id string) (*UserData, error)
	FindByDingTalkOpenId(id string) (*UserData, error)
	FindByMobile(id string) (*UserData, error)
	FindByEmail(id string) (*UserData, error)
}

UserDataRepoI is a Greater repo.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL