add: user auth accomplished

This commit is contained in:
wwweww
2026-02-26 02:17:07 +08:00
parent 300058ad01
commit 60b6f40f9f
54 changed files with 1601 additions and 2303 deletions
+4 -2
View File
@@ -12,6 +12,7 @@ type (
Password string `json:"password" binding:"required,min=6,max=128"`
Email string `json:"email,omitempty" binding:"omitempty,email"`
Phone string `json:"phone,omitempty" binding:"omitempty,len=11"`
Vcode int32 `json:"vcode"`
}
RegisterResp {
UserId int64 `json:"userId"`
@@ -62,7 +63,8 @@ type (
Message string `json:"message"`
}
LogoutReq {
UserId int64 `path:"userId" binding:"required,gt=0"`
UserId int64 `path:"userId" binding:"required,gt=0"`
Token string `header:"Authorization" binding:"required"`
}
LogoutResp {
Message string `json:"message"`
@@ -116,7 +118,7 @@ service user-api {
@doc (
summary: "用户登出"
description: "清除用户的登录会话,使用户令牌失效"
description: "需要携带 Authorization 令牌,清除用户会话并使令牌失效"
)
@handler Logout
post /:userId/logout (LogoutReq) returns (LogoutResp)
+48 -22
View File
@@ -1,6 +1,6 @@
syntax = "proto3";
option go_package ="./pb";
option go_package = "./pb";
package pb;
@@ -10,7 +10,7 @@ package pb;
//--------------------------------users--------------------------------
message Users {
string userId = 1; //userId
int64 userId = 1; //userId
string username = 2; //username
string passwd = 3; //passwd
string nickname = 4; //nickname
@@ -24,7 +24,7 @@ message Users {
}
message AddUsersReq {
string userId = 1; //userId
int64 userId = 1; //userId
string username = 2; //username
string passwd = 3; //passwd
string nickname = 4; //nickname
@@ -41,7 +41,7 @@ message AddUsersResp {
}
message UpdateUsersReq {
string userId = 1; //userId
int64 userId = 1; //userId
string username = 2; //username
string passwd = 3; //passwd
string nickname = 4; //nickname
@@ -75,7 +75,7 @@ message GetUsersByIdResp {
message SearchUsersReq {
int64 page = 1; //page
int64 limit = 2; //limit
string userId = 3; //userId
int64 userId = 3; //userId
string username = 4; //username
string passwd = 5; //passwd
string nickname = 6; //nickname
@@ -101,28 +101,31 @@ message GetUserByUsernameResp {
}
message LoginReq {
string username = 1;
string passwd = 2;
string username = 1;
string passwd = 2;
}
message LoginResp {
string token = 1;
string token = 1;
string username = 2;
string email = 3;
int64 id = 4;
}
message ValidateTokenReq {
string token = 1; // JWT token
string userId = 2; // 用户ID
int64 userId = 2; // 用户ID
}
message ValidateTokenResp {
bool valid = 1; // token 是否有效(不在黑名单中)
string message = 2; // 验证失败原因
string userId = 3; // 用户ID
int64 userId = 3; // 用户ID
int64 roleType = 4; // 用户角色
}
message CheckPermissionReq {
string userId = 1; // 用户ID
int64 userId = 1; // 用户ID
string resource = 2; // 资源 ID
string action = 3; // 操作类型: read/write/delete
}
@@ -132,20 +135,43 @@ message CheckPermissionResp {
string message = 2; // 拒绝原因
}
message RegisterReq {
string username = 1;
string passwd = 2;
string phone = 3;
int32 vcode = 4;
string email = 5;
string requestId = 6;
}
message RegisterResp {
string res = 1;
}
message LogoutReq {
int64 userId = 1;
}
message LogoutResp {
}
// ------------------------------------
// Rpc Func
// ------------------------------------
service usercenter {
service usercenter {
//-----------------------users-----------------------
rpc AddUsers(AddUsersReq) returns (AddUsersResp);
rpc UpdateUsers(UpdateUsersReq) returns (UpdateUsersResp);
rpc DelUsers(DelUsersReq) returns (DelUsersResp);
rpc GetUsersById(GetUsersByIdReq) returns (GetUsersByIdResp);
rpc GetUserByUsername(GetUserByUsernameReq) returns (GetUserByUsernameResp);
rpc SearchUsers(SearchUsersReq) returns (SearchUsersResp);
rpc Login(LoginReq) returns (LoginResp);
rpc ValidateToken(ValidateTokenReq) returns (ValidateTokenResp);
rpc CheckPermission(CheckPermissionReq) returns (CheckPermissionResp);
//-----------------------users-----------------------
rpc AddUsers(AddUsersReq) returns (AddUsersResp);
rpc UpdateUsers(UpdateUsersReq) returns (UpdateUsersResp);
rpc DelUsers(DelUsersReq) returns (DelUsersResp);
rpc GetUsersById(GetUsersByIdReq) returns (GetUsersByIdResp);
rpc GetUserByUsername(GetUserByUsernameReq) returns (GetUserByUsernameResp);
rpc SearchUsers(SearchUsersReq) returns (SearchUsersResp);
rpc Login(LoginReq) returns (LoginResp);
rpc Register(RegisterReq) returns (RegisterResp);
rpc ValidateToken(ValidateTokenReq) returns (ValidateTokenResp);
rpc CheckPermission(CheckPermissionReq) returns (CheckPermissionResp);
rpc Logout(LogoutReq) returns (LogoutResp);
}
+9 -7
View File
@@ -1,15 +1,17 @@
create extension if not exists "uuid-ossp";
create extension if not exists "pg_trgm";
-- create
-- extension if not exists "uuid-ossp";
create
extension if not exists "pg_trgm";
create table users
(
user_id uuid primary key default uuid_generate_v4(),
user_id BIGINT primary key not null,
username VARCHAR(50) UNIQUE NOT NULL,
passwd VARCHAR(255) NOT NULL,
nickname VARCHAR(50) NOT NULL,
phone VARCHAR(20) UNIQUE NOT NULL,
role_type SMALLINT NOT NULL, -- 1:玩家, 2:打手, 3:店长
nickname VARCHAR(50) NOT NULL DEFAULT ('user_' || substr(md5(random()::text), 1, 10)),
phone VARCHAR(20) UNIQUE NOT NULL default '',
email varchar(50) unique not null default '',
role_type SMALLINT NOT NULL default 1, -- 1:玩家, 2:打手, 3:店长
is_verified BOOLEAN DEFAULT false,
state BOOLEAN NOT NULL DEFAULT true,
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP,