add: user auth accomplished
This commit is contained in:
+4
-2
@@ -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
@@ -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
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user