JCS-pub/common/pkgs/rpc/coordinator/user.go

96 lines
3.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package corrpc
import (
context "context"
"gitlink.org.cn/cloudream/jcs-pub/common/pkgs/rpc"
jcstypes "gitlink.org.cn/cloudream/jcs-pub/common/types"
)
type UserService interface {
UserLogin(ctx context.Context, msg *UserLogin) (*UserLoginResp, *rpc.CodeError)
UserLogout(ctx context.Context, msg *UserLogout) (*UserLogoutResp, *rpc.CodeError)
UserRefreshToken(ctx context.Context, msg *UserRefreshToken) (*UserRefreshTokenResp, *rpc.CodeError)
HubLoadAccessToken(ctx context.Context, msg *HubLoadAccessToken) (*HubLoadAccessTokenResp, *rpc.CodeError)
}
// 客户端登录
type UserLogin struct {
Account string
Password string
}
type UserLoginResp struct {
Token jcstypes.UserAccessToken
PrivateKey string
}
var _ = NoAuth(Coordinator_UserLogin_FullMethodName)
func (c *Client) UserLogin(ctx context.Context, msg *UserLogin) (*UserLoginResp, *rpc.CodeError) {
if c.fusedErr != nil {
return nil, c.fusedErr
}
return rpc.UnaryClient[*UserLoginResp](c.cli.UserLogin, ctx, msg)
}
func (s *Server) UserLogin(ctx context.Context, req *rpc.Request) (*rpc.Response, error) {
return rpc.UnaryServer(s.svrImpl.UserLogin, ctx, req)
}
// 客户端刷新Token原始Token会继续有效。
type UserRefreshToken struct{}
type UserRefreshTokenResp struct {
Token jcstypes.UserAccessToken
PrivateKey string
}
var _ = TokenAuth(Coordinator_UserRefreshToken_FullMethodName)
func (c *Client) UserRefreshToken(ctx context.Context, msg *UserRefreshToken) (*UserRefreshTokenResp, *rpc.CodeError) {
if c.fusedErr != nil {
return nil, c.fusedErr
}
return rpc.UnaryClient[*UserRefreshTokenResp](c.cli.UserRefreshToken, ctx, msg)
}
func (s *Server) UserRefreshToken(ctx context.Context, req *rpc.Request) (*rpc.Response, error) {
return rpc.UnaryServer(s.svrImpl.UserRefreshToken, ctx, req)
}
// 客户端登出。会使用GRPC元数据中的TokenID和UserID来查找Token并删除。
type UserLogout struct{}
type UserLogoutResp struct{}
var _ = TokenAuth(Coordinator_UserLogout_FullMethodName)
func (c *Client) UserLogout(ctx context.Context, msg *UserLogout) (*UserLogoutResp, *rpc.CodeError) {
if c.fusedErr != nil {
return nil, c.fusedErr
}
return rpc.UnaryClient[*UserLogoutResp](c.cli.UserLogout, ctx, msg)
}
func (s *Server) UserLogout(ctx context.Context, req *rpc.Request) (*rpc.Response, error) {
return rpc.UnaryServer(s.svrImpl.UserLogout, ctx, req)
}
// Hub服务加载AccessToken
type HubLoadAccessToken struct {
HubID jcstypes.HubID
UserID jcstypes.UserID
TokenID jcstypes.AccessTokenID
}
type HubLoadAccessTokenResp struct {
Token jcstypes.UserAccessToken
}
func (c *Client) HubLoadAccessToken(ctx context.Context, msg *HubLoadAccessToken) (*HubLoadAccessTokenResp, *rpc.CodeError) {
if c.fusedErr != nil {
return nil, c.fusedErr
}
return rpc.UnaryClient[*HubLoadAccessTokenResp](c.cli.HubLoadAccessToken, ctx, msg)
}
func (s *Server) HubLoadAccessToken(ctx context.Context, req *rpc.Request) (*rpc.Response, error) {
return rpc.UnaryServer(s.svrImpl.HubLoadAccessToken, ctx, req)
}