perm.proto 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. syntax = "proto3";
  2. package pb;
  3. option go_package = "perms-system-server/pb";
  4. // PermService 权限管理系统 gRPC 服务,供接入产品的服务端调用。
  5. service PermService {
  6. // SyncPermissions 同步权限声明。产品服务端通过 appKey/appSecret 认证后批量同步权限定义(新增/更新/禁用不在列表中的权限)。
  7. rpc SyncPermissions(SyncPermissionsReq) returns (SyncPermissionsResp);
  8. // Login 产品端登录。产品成员通过用户名密码 + productCode 登录,返回 JWT 令牌对及用户权限信息。
  9. rpc Login(LoginReq) returns (LoginResp);
  10. // RefreshToken 刷新令牌。使用有效的 refreshToken 换取新的令牌对,旧令牌即时失效(单会话轮转)。
  11. rpc RefreshToken(RefreshTokenReq) returns (RefreshTokenResp);
  12. // VerifyToken 验证令牌。校验 accessToken 的有效性(签名、过期、用户状态、产品状态、成员资格、tokenVersion),返回用户权限信息。
  13. rpc VerifyToken(VerifyTokenReq) returns (VerifyTokenResp);
  14. // GetUserPerms 查询用户权限。产品服务端通过 appKey/appSecret 认证后查询指定用户在该产品下的成员类型和权限列表。
  15. rpc GetUserPerms(GetUserPermsReq) returns (GetUserPermsResp);
  16. }
  17. message PermItem {
  18. string code = 1;
  19. string name = 2;
  20. string remark = 3;
  21. }
  22. message SyncPermissionsReq {
  23. string appKey = 1;
  24. string appSecret = 2;
  25. repeated PermItem perms = 3;
  26. }
  27. message SyncPermissionsResp {
  28. int64 added = 1;
  29. int64 updated = 2;
  30. int64 disabled = 3;
  31. }
  32. message LoginReq {
  33. string productCode = 1;
  34. string username = 2;
  35. string password = 3;
  36. }
  37. message LoginResp {
  38. string accessToken = 1;
  39. string refreshToken = 2;
  40. int64 expires = 3;
  41. int64 userId = 4;
  42. string username = 5;
  43. string nickname = 6;
  44. string memberType = 7;
  45. repeated string perms = 8;
  46. }
  47. message RefreshTokenReq {
  48. string refreshToken = 1;
  49. string productCode = 2;
  50. }
  51. message RefreshTokenResp {
  52. string accessToken = 1;
  53. string refreshToken = 2;
  54. int64 expires = 3;
  55. repeated string perms = 4;
  56. }
  57. message VerifyTokenReq {
  58. string accessToken = 1;
  59. }
  60. message VerifyTokenResp {
  61. bool valid = 1;
  62. int64 userId = 2;
  63. string username = 3;
  64. string productCode = 4;
  65. string memberType = 5;
  66. repeated string perms = 6;
  67. }
  68. message GetUserPermsReq {
  69. int64 userId = 1;
  70. string productCode = 2;
  71. string appKey = 3;
  72. string appSecret = 4;
  73. }
  74. message GetUserPermsResp {
  75. repeated string perms = 1;
  76. string memberType = 2;
  77. }