syntax = "proto3"; package pb; option go_package = "perms-system-server/pb"; // PermService 权限管理系统 gRPC 服务,供接入产品的服务端调用。 service PermService { // SyncPermissions 同步权限声明。产品服务端通过 appKey/appSecret 认证后批量同步权限定义(新增/更新/禁用不在列表中的权限)。 rpc SyncPermissions(SyncPermissionsReq) returns (SyncPermissionsResp); // Login 产品端登录。产品成员通过用户名密码 + productCode 登录,返回 JWT 令牌对及用户权限信息。 rpc Login(LoginReq) returns (LoginResp); // RefreshToken 刷新令牌。使用有效的 refreshToken 换取新的令牌对,旧令牌即时失效(单会话轮转)。 rpc RefreshToken(RefreshTokenReq) returns (RefreshTokenResp); // VerifyToken 验证令牌。校验 accessToken 的有效性(签名、过期、用户状态、产品状态、成员资格、tokenVersion),返回用户权限信息。 rpc VerifyToken(VerifyTokenReq) returns (VerifyTokenResp); // GetUserPerms 查询用户权限。产品服务端通过 appKey/appSecret 认证后查询指定用户在该产品下的成员类型和权限列表。 rpc GetUserPerms(GetUserPermsReq) returns (GetUserPermsResp); } message PermItem { string code = 1; string name = 2; string remark = 3; } message SyncPermissionsReq { string appKey = 1; string appSecret = 2; repeated PermItem perms = 3; } message SyncPermissionsResp { int64 added = 1; int64 updated = 2; int64 disabled = 3; } message LoginReq { string productCode = 1; string username = 2; string password = 3; } message LoginResp { string accessToken = 1; string refreshToken = 2; int64 expires = 3; int64 userId = 4; string username = 5; string nickname = 6; string memberType = 7; repeated string perms = 8; } message RefreshTokenReq { string refreshToken = 1; string productCode = 2; } message RefreshTokenResp { string accessToken = 1; string refreshToken = 2; int64 expires = 3; repeated string perms = 4; } message VerifyTokenReq { string accessToken = 1; } message VerifyTokenResp { bool valid = 1; int64 userId = 2; string username = 3; string productCode = 4; string memberType = 5; repeated string perms = 6; } message GetUserPermsReq { int64 userId = 1; string productCode = 2; string appKey = 3; string appSecret = 4; } message GetUserPermsResp { repeated string perms = 1; string memberType = 2; }