client.go 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package permlib
  2. import (
  3. "context"
  4. "code.clickto.dev/weiym/permlib/pb"
  5. "google.golang.org/grpc"
  6. "google.golang.org/grpc/credentials/insecure"
  7. )
  8. type grpcClient struct {
  9. cli pb.PermServiceClient
  10. }
  11. func newGRPCClient(target string) (*grpcClient, error) {
  12. conn, err := grpc.NewClient(target, grpc.WithTransportCredentials(insecure.NewCredentials()))
  13. if err != nil {
  14. return nil, err
  15. }
  16. return &grpcClient{cli: pb.NewPermServiceClient(conn)}, nil
  17. }
  18. func (c *grpcClient) verifyToken(ctx context.Context, accessToken string) (*pb.VerifyTokenResp, error) {
  19. return c.cli.VerifyToken(ctx, &pb.VerifyTokenReq{AccessToken: accessToken})
  20. }
  21. func (c *grpcClient) login(ctx context.Context, productCode, username, password string) (*pb.LoginResp, error) {
  22. return c.cli.Login(ctx, &pb.LoginReq{
  23. ProductCode: productCode,
  24. Username: username,
  25. Password: password,
  26. })
  27. }
  28. func (c *grpcClient) refreshToken(ctx context.Context, refreshToken, productCode string) (*pb.RefreshTokenResp, error) {
  29. return c.cli.RefreshToken(ctx, &pb.RefreshTokenReq{
  30. RefreshToken: refreshToken,
  31. ProductCode: productCode,
  32. })
  33. }
  34. func (c *grpcClient) syncPermissions(ctx context.Context, appKey, appSecret string, perms []*pb.PermItem) (*pb.SyncPermissionsResp, error) {
  35. return c.cli.SyncPermissions(ctx, &pb.SyncPermissionsReq{
  36. AppKey: appKey,
  37. AppSecret: appSecret,
  38. Perms: perms,
  39. })
  40. }
  41. func (c *grpcClient) getUserPerms(ctx context.Context, appKey, appSecret string, userId int64, productCode string) (*pb.GetUserPermsResp, error) {
  42. return c.cli.GetUserPerms(ctx, &pb.GetUserPermsReq{
  43. AppKey: appKey,
  44. AppSecret: appSecret,
  45. UserId: userId,
  46. ProductCode: productCode,
  47. })
  48. }
  49. func (c *grpcClient) logout(ctx context.Context, accessToken string) error {
  50. _, err := c.cli.Logout(ctx, &pb.LogoutReq{AccessToken: accessToken})
  51. return err
  52. }