CLN-07: Copied .proto sources from chat-server and stream-server
to proto/{common,chat,stream}/. Original copies remain until builds
are updated to use the shared directory.
89 lines
1.8 KiB
Protocol Buffer
89 lines
1.8 KiB
Protocol Buffer
syntax = "proto3";
|
|
|
|
package veza.common.auth;
|
|
|
|
option go_package = "veza-backend-api/proto/common/auth";
|
|
|
|
// Service d'authentification partagé
|
|
service AuthService {
|
|
// Valider un JWT token
|
|
rpc ValidateToken(ValidateTokenRequest) returns (ValidateTokenResponse);
|
|
|
|
// Obtenir les informations utilisateur
|
|
rpc GetUserInfo(GetUserInfoRequest) returns (GetUserInfoResponse);
|
|
|
|
// Vérifier les permissions
|
|
rpc CheckPermissions(CheckPermissionsRequest) returns (CheckPermissionsResponse);
|
|
|
|
// Révoquer un token
|
|
rpc RevokeToken(RevokeTokenRequest) returns (RevokeTokenResponse);
|
|
}
|
|
|
|
// Messages de requête/réponse
|
|
message ValidateTokenRequest {
|
|
string token = 1;
|
|
string service = 2; // service qui fait la demande (chat, stream)
|
|
}
|
|
|
|
message ValidateTokenResponse {
|
|
bool valid = 1;
|
|
UserClaims user = 2;
|
|
string error = 3;
|
|
}
|
|
|
|
message GetUserInfoRequest {
|
|
int64 user_id = 1;
|
|
string token = 2;
|
|
}
|
|
|
|
message GetUserInfoResponse {
|
|
UserInfo user = 1;
|
|
string error = 2;
|
|
}
|
|
|
|
message CheckPermissionsRequest {
|
|
int64 user_id = 1;
|
|
string resource = 2; // "chat.room", "stream.channel"
|
|
string action = 3; // "read", "write", "moderate"
|
|
string resource_id = 4;
|
|
}
|
|
|
|
message CheckPermissionsResponse {
|
|
bool allowed = 1;
|
|
repeated string permissions = 2;
|
|
string error = 3;
|
|
}
|
|
|
|
message RevokeTokenRequest {
|
|
string token = 1;
|
|
string reason = 2;
|
|
}
|
|
|
|
message RevokeTokenResponse {
|
|
bool success = 1;
|
|
string error = 2;
|
|
}
|
|
|
|
// Types de données
|
|
message UserClaims {
|
|
int64 user_id = 1;
|
|
string username = 2;
|
|
string email = 3;
|
|
string role = 4;
|
|
bool is_active = 5;
|
|
int64 issued_at = 6;
|
|
int64 expires_at = 7;
|
|
}
|
|
|
|
message UserInfo {
|
|
int64 id = 1;
|
|
string username = 2;
|
|
string email = 3;
|
|
string first_name = 4;
|
|
string last_name = 5;
|
|
string role = 6;
|
|
bool is_active = 7;
|
|
bool is_verified = 8;
|
|
int64 created_at = 9;
|
|
int64 last_login_at = 10;
|
|
}
|