本文檔描述了用戶(hù)身份管理系統的核心接口,包括用戶(hù)登錄認證和用戶(hù)信息獲取功能。系統使用 JWT Token 進(jìn)行身份驗證,支持多種 Token 類(lèi)型和數據持久化。
接口路徑: api/auth/GetUserInfo
請求方法: POST
接口描述: 用戶(hù)登錄后獲取認證 Token 和基本信息
{
"Result": 1,
"DataValue": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/sid": "20b34d686c6d40f198d2eacb96d31fab",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name": "host",
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/mobilephone": "15130025027",
"email": "host@163.com",
"sub": "20b34d686c6d40f198d2eacb96d31fab",
"jti": "dfaffa9a07204df4ad32836752a0111b",
"nbf": "1759496577",
"exp": "1762088577",
"iss": "sys",
"aud": "host",
"xiaoqi_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"cachexiaoqi_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"xiaoqi_type": "sys",
"cachexiaoqi_type": "sys",
"xiaoqi_keyid": "20b34d686c6d40f198d2eacb96d31fab",
"cachexiaoqi_keyid": "20b34d686c6d40f198d2eacb96d31fab"
},
"MessageCode": "S000000",
"Message": "操作成功",
"ContentEncoding": null,
"ContentType": null,
"JsonRequestBehavior": 0,
"MaxJsonLength": null,
"RecursionLimit": null
}
| 字段名 | 類(lèi)型 | 描述 | |--------|------|------| | Result | number | 操作結果狀態(tài)碼,1表示成功 | | DataValue | object | 認證數據對象 | | DataValue.token | string | 主要的 JWT 認證 Token | | DataValue.xiaoqi_token | string | 小七系統專(zhuān)用 Token | | DataValue.cachexiaoqi_token | string | 小七系統緩存 Token | | DataValue.email | string | 用戶(hù)郵箱地址 | | DataValue.sub | string | 用戶(hù)唯一標識符 | | DataValue.exp | string | Token 過(guò)期時(shí)間戳 | | DataValue.xiaoqi_keyid | string | 小七系統用戶(hù)密鑰ID | | MessageCode | string | 消息代碼 | | Message | string | 操作結果描述 |
接口路徑: api/auth/ShowUserInfos
請求方法: POST
接口描述: 獲取用戶(hù)完整的個(gè)人信息、企業(yè)信息和權限數據
{
"Result": 1,
"DataValue": {
"LoginUser": {
"Uuid": "20b34d686c6d40f198d2eacb96d31fab",
"Fluuid": null,
"Qyuuid": "ed8f23c687634f1c931eb0d3338ca9c1",
"Username": "host",
"Email": "host@163.com",
"PhoneNumber": "15130025027",
"AuthType": "0",
"Nickname": "系統管理",
"Synopsis": "承亞奇之志補智匯之斷層",
"Grade": "0",
"IsEnabled": 1,
"IsActive": 1,
"CreateTime": "2020-02-02T10:11:11"
},
"name": "系統管理",
"LoginInfo": {
"SysUuid": "20b34d686c6d40f198d2eacb96d31fab",
"Username": "host",
"Qyuuid": "ed8f23c687634f1c931eb0d3338ca9c1",
"AuthType": "0"
},
"LoginType": 0,
"LoginCompanies": [
{
"CompanyId": "ed8f23c687634f1c931eb0d3338ca9c1",
"ParentId": "10000000",
"GroupId": "10000000",
"BelongName": "中國石化",
"AreaName": "總公司",
"Name": "中國石油化工集團有限公司",
"Code": "9111000010169286X1",
"Description": "為美好生活加油!"
}
],
"LoginUserExtend": [
{
"Uuid": "2211212",
"Fluuid": "20b34d686c6d40f198d2eacb96d31fab",
"UserKey": "slogan",
"UserValues": "承亞奇之志補智匯之斷層"
},
{
"Uuid": "434343",
"Fluuid": "20b34d686c6d40f198d2eacb96d31fab",
"UserKey": "avator",
"UserValues": "http://www.co-strong.com/Content/Portal/icon/logo.png"
}
]
},
"MessageCode": "S000000",
"Message": "獲取成功!"
}
| 字段名 | 類(lèi)型 | 描述 | |--------|------|------| | DataValue.LoginUser | object | 登錄用戶(hù)基本信息 | | DataValue.LoginUser.Uuid | string | 用戶(hù)唯一標識 | | DataValue.LoginUser.Username | string | 用戶(hù)名 | | DataValue.LoginUser.Email | string | 用戶(hù)郵箱 | | DataValue.LoginUser.PhoneNumber | string | 手機號碼 | | DataValue.LoginUser.Nickname | string | 用戶(hù)昵稱(chēng) | | DataValue.LoginUser.Synopsis | string | 用戶(hù)簡(jiǎn)介 | | DataValue.LoginCompanies | array | 用戶(hù)關(guān)聯(lián)的企業(yè)信息列表 | | DataValue.LoginUserExtend | array | 用戶(hù)擴展信息(頭像、標語(yǔ)等) | | DataValue.LoginInfo | object | 登錄會(huì )話(huà)信息 |
token
):標準 JWT Token,用于一般 API 認證xiaoqi_token
):小七系統專(zhuān)用認證 Tokencachexiaoqi_token
):用于緩存的認證 Tokennbf
):Token 生效時(shí)間exp
):Token 失效時(shí)間iss
):Token 簽發(fā)機構aud
):Token 接收方系統使用 Pinia 進(jìn)行用戶(hù)狀態(tài)管理,支持數據持久化存儲。主要功能包括:
| MessageCode | 描述 | |-------------|------| | S000000 | 操作成功 | | E000001 | 認證失敗 | | E000002 | Token 過(guò)期 | | E000003 | 權限不足 |
// 獲取用戶(hù)認證信息
const getUserAuth = async () => {
try {
const response = await api.post('/auth/GetUserInfo');
if (response.Result === 1) {
// 存儲 Token 到 Pinia Store
userStore.setTokens(response.DataValue);
}
} catch (error) {
console.error('獲取認證信息失敗:', error);
}
};
// 獲取用戶(hù)詳細信息
const getUserDetails = async () => {
try {
const response = await api.post('/auth/ShowUserInfos');
if (response.Result === 1) {
// 存儲用戶(hù)信息到 Pinia Store
userStore.setUserInfo(response.DataValue);
}
} catch (error) {
console.error('獲取用戶(hù)信息失敗:', error);
}
};