[{"data":1,"prerenderedAt":1816},["ShallowReactive",2],{"navigation":3,"/api/auth":55,"/api/auth-surround":1811},[4,25],{"title":5,"path":6,"stem":7,"children":8,"page":24},"快速开始","/guide","1.guide",[9,14,19],{"title":10,"path":11,"stem":12,"icon":13},"快速入门","/guide/getting-started","1.guide/1.getting-started","i-lucide-rocket",{"title":15,"path":16,"stem":17,"icon":18},"认证","/guide/authentication","1.guide/2.authentication","i-lucide-lock",{"title":20,"path":21,"stem":22,"icon":23},"错误处理","/guide/error-handling","1.guide/3.error-handling","i-lucide-alert-triangle",false,{"title":26,"path":27,"stem":28,"children":29,"page":24},"API文档","/api","2.api",[30,35,40,45,50],{"title":31,"path":32,"stem":33,"icon":34},"用户认证","/api/auth","2.api/1.auth","i-lucide-key-round",{"title":36,"path":37,"stem":38,"icon":39},"AI 角色","/api/characters","2.api/2.characters","i-lucide-bot",{"title":41,"path":42,"stem":43,"icon":44},"知识库","/api/knowledge","2.api/3.knowledge","i-lucide-book-open",{"title":46,"path":47,"stem":48,"icon":49},"聊天会话","/api/chat","2.api/4.chat","i-lucide-message-circle",{"title":51,"path":52,"stem":53,"icon":54},"插件","/api/plugins","2.api/5.plugins","i-lucide-puzzle",{"id":56,"title":31,"body":57,"description":1804,"extension":1805,"links":1806,"meta":1807,"navigation":1808,"path":32,"seo":1809,"stem":33,"__hash__":1810},"docs/2.api/1.auth.md",{"type":58,"value":59,"toc":1790},"minimark",[60,64,73,79,88,94,100,105,149,152,155,161,165,169,173,178,554,558,600,602,606,612,616,621,625,925,929,955,957,960,966,970,975,979,999,1001,1005,1011,1015,1020,1036,1040,1074,1076,1079,1085,1089,1093,1099,1103,1144,1146,1149,1155,1159,1163,1168,1173,1177,1215,1217,1220,1227,1231,1420,1424,1456,1458,1461,1467,1471,1476,1481,1485,1523,1525,1528,1538,1542,1549,1553,1646,1650,1682,1684,1687,1693,1697,1703,1708,1712,1745,1747,1750,1757,1761,1786],[61,62,63],"h2",{"id":63},"注册",[65,66,69],"endpoint",{"method":67,"path":68},"POST","/auth/sign-up/email",[70,71,72],"p",{},"使用邮箱、密码和用户名注册新用户。",[70,74,75],{},[76,77,78],"strong",{},"请求参数：",[80,81,85],"field",{"name":82,"type":83,":required":84},"email","string","true",[70,86,87],{},"用户邮箱地址",[80,89,91],{"name":90,"type":83,":required":84},"name",[70,92,93],{},"用户名",[80,95,97],{"name":96,"type":83,":required":84},"password",[70,98,99],{},"用户密码",[70,101,102],{},[76,103,104],{},"响应状态码：",[106,107,108,121],"table",{},[109,110,111],"thead",{},[112,113,114,118],"tr",{},[115,116,117],"th",{},"状态码",[115,119,120],{},"说明",[122,123,124,133,141],"tbody",{},[112,125,126,130],{},[127,128,129],"td",{},"201",[127,131,132],{},"注册成功",[112,134,135,138],{},[127,136,137],{},"400",[127,139,140],{},"输入参数无效（如邮箱格式错误、密码太短、用户名格式错误等）",[112,142,143,146],{},[127,144,145],{},"409",[127,147,148],{},"邮箱已被注册",[150,151],"hr",{},[61,153,154],{"id":154},"邮箱登录",[65,156,158],{"method":67,"path":157},"/auth/sign-in/email",[70,159,160],{},"使用邮箱和密码登录，获取访问令牌和刷新令牌。",[70,162,163],{},[76,164,78],{},[80,166,167],{"name":82,"type":83,":required":84},[70,168,87],{},[80,170,171],{"name":96,"type":83,":required":84},[70,172,99],{},[70,174,175],{},[76,176,177],{},"响应数据：",[179,180,185],"pre",{"className":181,"code":182,"language":183,"meta":184,"style":184},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"success\": true,\n  \"message\": \"登录成功\",\n  \"data\": {\n    \"user\": {\n      \"userId\": \"8ebc8550-6d4b-4dd0-967b-3e1367a4abf1\",\n      \"email\": \"user@example.com\",\n      \"username\": \"Alice\",\n      \"avatar\": null,\n      \"isEmailVerified\": true,\n      \"createdAt\": \"2026-01-01T00:00:00Z\",\n      \"updatedAt\": \"2026-01-01T00:00:00Z\"\n    },\n    \"tokens\": {\n      \"accessToken\": \"eyJhbGciOiJIUzI1NiIs...\",\n      \"refreshToken\": \"eyJhbGciOiJIUzI1NiIs...\",\n      \"accessTokenExpiredIn\": 1771325631,\n      \"refreshTokenExpiredIn\": 1771930431,\n      \"tokenType\": \"Bearer\"\n    }\n  },\n  \"timestamp\": \"2026-01-01T00:00:00Z\"\n}\n","json","",[186,187,188,197,216,240,255,271,294,314,335,350,364,385,404,410,424,445,465,482,499,518,524,530,548],"code",{"__ignoreMap":184},[189,190,193],"span",{"class":191,"line":192},"line",1,[189,194,196],{"class":195},"sMK4o","{\n",[189,198,200,203,207,210,213],{"class":191,"line":199},2,[189,201,202],{"class":195},"  \"",[189,204,206],{"class":205},"spNyl","success",[189,208,209],{"class":195},"\"",[189,211,212],{"class":195},":",[189,214,215],{"class":195}," true,\n",[189,217,219,221,224,226,228,231,235,237],{"class":191,"line":218},3,[189,220,202],{"class":195},[189,222,223],{"class":205},"message",[189,225,209],{"class":195},[189,227,212],{"class":195},[189,229,230],{"class":195}," \"",[189,232,234],{"class":233},"sfazB","登录成功",[189,236,209],{"class":195},[189,238,239],{"class":195},",\n",[189,241,243,245,248,250,252],{"class":191,"line":242},4,[189,244,202],{"class":195},[189,246,247],{"class":205},"data",[189,249,209],{"class":195},[189,251,212],{"class":195},[189,253,254],{"class":195}," {\n",[189,256,258,261,265,267,269],{"class":191,"line":257},5,[189,259,260],{"class":195},"    \"",[189,262,264],{"class":263},"sBMFI","user",[189,266,209],{"class":195},[189,268,212],{"class":195},[189,270,254],{"class":195},[189,272,274,277,281,283,285,287,290,292],{"class":191,"line":273},6,[189,275,276],{"class":195},"      \"",[189,278,280],{"class":279},"sbssI","userId",[189,282,209],{"class":195},[189,284,212],{"class":195},[189,286,230],{"class":195},[189,288,289],{"class":233},"8ebc8550-6d4b-4dd0-967b-3e1367a4abf1",[189,291,209],{"class":195},[189,293,239],{"class":195},[189,295,297,299,301,303,305,307,310,312],{"class":191,"line":296},7,[189,298,276],{"class":195},[189,300,82],{"class":279},[189,302,209],{"class":195},[189,304,212],{"class":195},[189,306,230],{"class":195},[189,308,309],{"class":233},"user@example.com",[189,311,209],{"class":195},[189,313,239],{"class":195},[189,315,317,319,322,324,326,328,331,333],{"class":191,"line":316},8,[189,318,276],{"class":195},[189,320,321],{"class":279},"username",[189,323,209],{"class":195},[189,325,212],{"class":195},[189,327,230],{"class":195},[189,329,330],{"class":233},"Alice",[189,332,209],{"class":195},[189,334,239],{"class":195},[189,336,338,340,343,345,347],{"class":191,"line":337},9,[189,339,276],{"class":195},[189,341,342],{"class":279},"avatar",[189,344,209],{"class":195},[189,346,212],{"class":195},[189,348,349],{"class":195}," null,\n",[189,351,353,355,358,360,362],{"class":191,"line":352},10,[189,354,276],{"class":195},[189,356,357],{"class":279},"isEmailVerified",[189,359,209],{"class":195},[189,361,212],{"class":195},[189,363,215],{"class":195},[189,365,367,369,372,374,376,378,381,383],{"class":191,"line":366},11,[189,368,276],{"class":195},[189,370,371],{"class":279},"createdAt",[189,373,209],{"class":195},[189,375,212],{"class":195},[189,377,230],{"class":195},[189,379,380],{"class":233},"2026-01-01T00:00:00Z",[189,382,209],{"class":195},[189,384,239],{"class":195},[189,386,388,390,393,395,397,399,401],{"class":191,"line":387},12,[189,389,276],{"class":195},[189,391,392],{"class":279},"updatedAt",[189,394,209],{"class":195},[189,396,212],{"class":195},[189,398,230],{"class":195},[189,400,380],{"class":233},[189,402,403],{"class":195},"\"\n",[189,405,407],{"class":191,"line":406},13,[189,408,409],{"class":195},"    },\n",[189,411,413,415,418,420,422],{"class":191,"line":412},14,[189,414,260],{"class":195},[189,416,417],{"class":263},"tokens",[189,419,209],{"class":195},[189,421,212],{"class":195},[189,423,254],{"class":195},[189,425,427,429,432,434,436,438,441,443],{"class":191,"line":426},15,[189,428,276],{"class":195},[189,430,431],{"class":279},"accessToken",[189,433,209],{"class":195},[189,435,212],{"class":195},[189,437,230],{"class":195},[189,439,440],{"class":233},"eyJhbGciOiJIUzI1NiIs...",[189,442,209],{"class":195},[189,444,239],{"class":195},[189,446,448,450,453,455,457,459,461,463],{"class":191,"line":447},16,[189,449,276],{"class":195},[189,451,452],{"class":279},"refreshToken",[189,454,209],{"class":195},[189,456,212],{"class":195},[189,458,230],{"class":195},[189,460,440],{"class":233},[189,462,209],{"class":195},[189,464,239],{"class":195},[189,466,468,470,473,475,477,480],{"class":191,"line":467},17,[189,469,276],{"class":195},[189,471,472],{"class":279},"accessTokenExpiredIn",[189,474,209],{"class":195},[189,476,212],{"class":195},[189,478,479],{"class":279}," 1771325631",[189,481,239],{"class":195},[189,483,485,487,490,492,494,497],{"class":191,"line":484},18,[189,486,276],{"class":195},[189,488,489],{"class":279},"refreshTokenExpiredIn",[189,491,209],{"class":195},[189,493,212],{"class":195},[189,495,496],{"class":279}," 1771930431",[189,498,239],{"class":195},[189,500,502,504,507,509,511,513,516],{"class":191,"line":501},19,[189,503,276],{"class":195},[189,505,506],{"class":279},"tokenType",[189,508,209],{"class":195},[189,510,212],{"class":195},[189,512,230],{"class":195},[189,514,515],{"class":233},"Bearer",[189,517,403],{"class":195},[189,519,521],{"class":191,"line":520},20,[189,522,523],{"class":195},"    }\n",[189,525,527],{"class":191,"line":526},21,[189,528,529],{"class":195},"  },\n",[189,531,533,535,538,540,542,544,546],{"class":191,"line":532},22,[189,534,202],{"class":195},[189,536,537],{"class":205},"timestamp",[189,539,209],{"class":195},[189,541,212],{"class":195},[189,543,230],{"class":195},[189,545,380],{"class":233},[189,547,403],{"class":195},[189,549,551],{"class":191,"line":550},23,[189,552,553],{"class":195},"}\n",[70,555,556],{},[76,557,104],{},[106,559,560,568],{},[109,561,562],{},[112,563,564,566],{},[115,565,117],{},[115,567,120],{},[122,569,570,577,584,592],{},[112,571,572,575],{},[127,573,574],{},"200",[127,576,234],{},[112,578,579,581],{},[127,580,137],{},[127,582,583],{},"输入参数无效",[112,585,586,589],{},[127,587,588],{},"401",[127,590,591],{},"用户名或密码错误",[112,593,594,597],{},[127,595,596],{},"403",[127,598,599],{},"账号状态不可登录（如未验证、被封禁）",[150,601],{},[61,603,605],{"id":604},"刷新-token","刷新 Token",[65,607,609],{"method":67,"path":608},"/auth/refresh",[70,610,611],{},"使用刷新令牌获取新的访问令牌。",[70,613,614],{},[76,615,78],{},[80,617,618],{"name":452,"type":83,":required":84},[70,619,620],{},"当前有效的 Refresh Token",[70,622,623],{},[76,624,177],{},[179,626,628],{"className":181,"code":627,"language":183,"meta":184,"style":184},"{\n  \"success\": true,\n  \"message\": \"令牌刷新成功\",\n  \"data\": {\n    \"user\": {\n      \"userId\": \"8ebc8550-6d4b-4dd0-967b-3e1367a4abf1\",\n      \"email\": \"user@example.com\",\n      \"username\": \"Alice\",\n      \"avatar\": null,\n      \"isEmailVerified\": true,\n      \"createdAt\": \"2026-01-01T00:00:00Z\",\n      \"updatedAt\": \"2026-01-01T00:00:00Z\"\n    },\n    \"tokens\": {\n      \"accessToken\": \"eyJhbGciOiJIUzI1NiIs...\",\n      \"refreshToken\": \"eyJhbGciOiJIUzI1NiIs...\",\n      \"accessTokenExpiredIn\": 1771325631,\n      \"refreshTokenExpiredIn\": 1771930431,\n      \"tokenType\": \"Bearer\"\n    }\n  },\n  \"timestamp\": \"2026-01-01T00:00:00Z\"\n}\n",[186,629,630,634,646,665,677,689,707,725,743,755,767,785,801,805,817,835,853,867,881,897,901,905,921],{"__ignoreMap":184},[189,631,632],{"class":191,"line":192},[189,633,196],{"class":195},[189,635,636,638,640,642,644],{"class":191,"line":199},[189,637,202],{"class":195},[189,639,206],{"class":205},[189,641,209],{"class":195},[189,643,212],{"class":195},[189,645,215],{"class":195},[189,647,648,650,652,654,656,658,661,663],{"class":191,"line":218},[189,649,202],{"class":195},[189,651,223],{"class":205},[189,653,209],{"class":195},[189,655,212],{"class":195},[189,657,230],{"class":195},[189,659,660],{"class":233},"令牌刷新成功",[189,662,209],{"class":195},[189,664,239],{"class":195},[189,666,667,669,671,673,675],{"class":191,"line":242},[189,668,202],{"class":195},[189,670,247],{"class":205},[189,672,209],{"class":195},[189,674,212],{"class":195},[189,676,254],{"class":195},[189,678,679,681,683,685,687],{"class":191,"line":257},[189,680,260],{"class":195},[189,682,264],{"class":263},[189,684,209],{"class":195},[189,686,212],{"class":195},[189,688,254],{"class":195},[189,690,691,693,695,697,699,701,703,705],{"class":191,"line":273},[189,692,276],{"class":195},[189,694,280],{"class":279},[189,696,209],{"class":195},[189,698,212],{"class":195},[189,700,230],{"class":195},[189,702,289],{"class":233},[189,704,209],{"class":195},[189,706,239],{"class":195},[189,708,709,711,713,715,717,719,721,723],{"class":191,"line":296},[189,710,276],{"class":195},[189,712,82],{"class":279},[189,714,209],{"class":195},[189,716,212],{"class":195},[189,718,230],{"class":195},[189,720,309],{"class":233},[189,722,209],{"class":195},[189,724,239],{"class":195},[189,726,727,729,731,733,735,737,739,741],{"class":191,"line":316},[189,728,276],{"class":195},[189,730,321],{"class":279},[189,732,209],{"class":195},[189,734,212],{"class":195},[189,736,230],{"class":195},[189,738,330],{"class":233},[189,740,209],{"class":195},[189,742,239],{"class":195},[189,744,745,747,749,751,753],{"class":191,"line":337},[189,746,276],{"class":195},[189,748,342],{"class":279},[189,750,209],{"class":195},[189,752,212],{"class":195},[189,754,349],{"class":195},[189,756,757,759,761,763,765],{"class":191,"line":352},[189,758,276],{"class":195},[189,760,357],{"class":279},[189,762,209],{"class":195},[189,764,212],{"class":195},[189,766,215],{"class":195},[189,768,769,771,773,775,777,779,781,783],{"class":191,"line":366},[189,770,276],{"class":195},[189,772,371],{"class":279},[189,774,209],{"class":195},[189,776,212],{"class":195},[189,778,230],{"class":195},[189,780,380],{"class":233},[189,782,209],{"class":195},[189,784,239],{"class":195},[189,786,787,789,791,793,795,797,799],{"class":191,"line":387},[189,788,276],{"class":195},[189,790,392],{"class":279},[189,792,209],{"class":195},[189,794,212],{"class":195},[189,796,230],{"class":195},[189,798,380],{"class":233},[189,800,403],{"class":195},[189,802,803],{"class":191,"line":406},[189,804,409],{"class":195},[189,806,807,809,811,813,815],{"class":191,"line":412},[189,808,260],{"class":195},[189,810,417],{"class":263},[189,812,209],{"class":195},[189,814,212],{"class":195},[189,816,254],{"class":195},[189,818,819,821,823,825,827,829,831,833],{"class":191,"line":426},[189,820,276],{"class":195},[189,822,431],{"class":279},[189,824,209],{"class":195},[189,826,212],{"class":195},[189,828,230],{"class":195},[189,830,440],{"class":233},[189,832,209],{"class":195},[189,834,239],{"class":195},[189,836,837,839,841,843,845,847,849,851],{"class":191,"line":447},[189,838,276],{"class":195},[189,840,452],{"class":279},[189,842,209],{"class":195},[189,844,212],{"class":195},[189,846,230],{"class":195},[189,848,440],{"class":233},[189,850,209],{"class":195},[189,852,239],{"class":195},[189,854,855,857,859,861,863,865],{"class":191,"line":467},[189,856,276],{"class":195},[189,858,472],{"class":279},[189,860,209],{"class":195},[189,862,212],{"class":195},[189,864,479],{"class":279},[189,866,239],{"class":195},[189,868,869,871,873,875,877,879],{"class":191,"line":484},[189,870,276],{"class":195},[189,872,489],{"class":279},[189,874,209],{"class":195},[189,876,212],{"class":195},[189,878,496],{"class":279},[189,880,239],{"class":195},[189,882,883,885,887,889,891,893,895],{"class":191,"line":501},[189,884,276],{"class":195},[189,886,506],{"class":279},[189,888,209],{"class":195},[189,890,212],{"class":195},[189,892,230],{"class":195},[189,894,515],{"class":233},[189,896,403],{"class":195},[189,898,899],{"class":191,"line":520},[189,900,523],{"class":195},[189,902,903],{"class":191,"line":526},[189,904,529],{"class":195},[189,906,907,909,911,913,915,917,919],{"class":191,"line":532},[189,908,202],{"class":195},[189,910,537],{"class":205},[189,912,209],{"class":195},[189,914,212],{"class":195},[189,916,230],{"class":195},[189,918,380],{"class":233},[189,920,403],{"class":195},[189,922,923],{"class":191,"line":550},[189,924,553],{"class":195},[70,926,927],{},[76,928,104],{},[106,930,931,939],{},[109,932,933],{},[112,934,935,937],{},[115,936,117],{},[115,938,120],{},[122,940,941,948],{},[112,942,943,945],{},[127,944,574],{},[127,946,947],{},"刷新成功",[112,949,950,952],{},[127,951,588],{},[127,953,954],{},"刷新令牌无效或已过期",[150,956],{},[61,958,959],{"id":959},"退出登录",[65,961,963],{"method":67,"path":962},"/auth/sign-out",[70,964,965],{},"注销当前会话，使刷新令牌失效。",[70,967,968],{},[76,969,78],{},[80,971,972],{"name":452,"type":83},[70,973,974],{},"需要注销的 Refresh Token（可选）",[70,976,977],{},[76,978,104],{},[106,980,981,989],{},[109,982,983],{},[112,984,985,987],{},[115,986,117],{},[115,988,120],{},[122,990,991],{},[112,992,993,996],{},[127,994,995],{},"204",[127,997,998],{},"退出成功",[150,1000],{},[61,1002,1004],{"id":1003},"发送-otp","发送 OTP",[65,1006,1008],{"method":67,"path":1007},"/auth/email-otp/send",[70,1009,1010],{},"向指定邮箱发送验证码，用于验证邮箱或重置密码。",[70,1012,1013],{},[76,1014,78],{},[80,1016,1017],{"name":82,"type":83,":required":84},[70,1018,1019],{},"目标邮箱地址",[80,1021,1023],{"name":1022,"type":83,":required":84},"type",[70,1024,1025,1026,1029,1030,1029,1033],{},"OTP 类型：",[186,1027,1028],{},"reset_password","、",[186,1031,1032],{},"verify_email",[186,1034,1035],{},"sign_in",[70,1037,1038],{},[76,1039,104],{},[106,1041,1042,1050],{},[109,1043,1044],{},[112,1045,1046,1048],{},[115,1047,117],{},[115,1049,120],{},[122,1051,1052,1059,1066],{},[112,1053,1054,1056],{},[127,1055,574],{},[127,1057,1058],{},"验证码发送成功",[112,1060,1061,1063],{},[127,1062,137],{},[127,1064,1065],{},"邮箱格式错误或类型不支持",[112,1067,1068,1071],{},[127,1069,1070],{},"429",[127,1072,1073],{},"请求频率超限",[150,1075],{},[61,1077,1078],{"id":1078},"验证邮箱",[65,1080,1082],{"method":67,"path":1081},"/auth/email-otp/verify-email",[70,1083,1084],{},"使用收到的验证码验证用户邮箱。",[70,1086,1087],{},[76,1088,78],{},[80,1090,1091],{"name":82,"type":83,":required":84},[70,1092,87],{},[80,1094,1096],{"name":1095,"type":83,":required":84},"otp",[70,1097,1098],{},"收到的验证码",[70,1100,1101],{},[76,1102,104],{},[106,1104,1105,1113],{},[109,1106,1107],{},[112,1108,1109,1111],{},[115,1110,117],{},[115,1112,120],{},[122,1114,1115,1122,1129,1136],{},[112,1116,1117,1119],{},[127,1118,574],{},[127,1120,1121],{},"邮箱验证成功",[112,1123,1124,1126],{},[127,1125,137],{},[127,1127,1128],{},"邮箱格式无效",[112,1130,1131,1133],{},[127,1132,588],{},[127,1134,1135],{},"验证码错误或已过期",[112,1137,1138,1141],{},[127,1139,1140],{},"404",[127,1142,1143],{},"用户不存在",[150,1145],{},[61,1147,1148],{"id":1148},"重置密码",[65,1150,1152],{"method":67,"path":1151},"/auth/email-otp/reset-password",[70,1153,1154],{},"使用验证码重置用户密码。",[70,1156,1157],{},[76,1158,78],{},[80,1160,1161],{"name":82,"type":83,":required":84},[70,1162,87],{},[80,1164,1165],{"name":1095,"type":83,":required":84},[70,1166,1167],{},"验证码",[80,1169,1170],{"name":96,"type":83,":required":84},[70,1171,1172],{},"新密码",[70,1174,1175],{},[76,1176,104],{},[106,1178,1179,1187],{},[109,1180,1181],{},[112,1182,1183,1185],{},[115,1184,117],{},[115,1186,120],{},[122,1188,1189,1196,1203,1209],{},[112,1190,1191,1193],{},[127,1192,574],{},[127,1194,1195],{},"密码重置成功",[112,1197,1198,1200],{},[127,1199,137],{},[127,1201,1202],{},"邮箱或密码格式不符",[112,1204,1205,1207],{},[127,1206,588],{},[127,1208,1135],{},[112,1210,1211,1213],{},[127,1212,1140],{},[127,1214,1143],{},[150,1216],{},[61,1218,1219],{"id":1219},"获取当前用户",[65,1221,1224],{"method":1222,"path":1223,":auth":84},"GET","/auth/me",[70,1225,1226],{},"获取当前登录用户的详细信息。",[70,1228,1229],{},[76,1230,177],{},[179,1232,1234],{"className":181,"code":1233,"language":183,"meta":184,"style":184},"{\n  \"success\": true,\n  \"message\": \"操作成功\",\n  \"data\": {\n    \"userId\": \"8ebc8550-6d4b-4dd0-967b-3e1367a4abf1\",\n    \"email\": \"user@example.com\",\n    \"username\": \"Alice\",\n    \"avatar\": null,\n    \"isEmailVerified\": true,\n    \"createdAt\": \"2026-01-01T00:00:00Z\",\n    \"updatedAt\": \"2026-01-15T08:30:00Z\"\n  },\n  \"timestamp\": \"2026-01-15T08:30:00Z\"\n}\n",[186,1235,1236,1240,1252,1271,1283,1301,1319,1337,1349,1361,1379,1396,1400,1416],{"__ignoreMap":184},[189,1237,1238],{"class":191,"line":192},[189,1239,196],{"class":195},[189,1241,1242,1244,1246,1248,1250],{"class":191,"line":199},[189,1243,202],{"class":195},[189,1245,206],{"class":205},[189,1247,209],{"class":195},[189,1249,212],{"class":195},[189,1251,215],{"class":195},[189,1253,1254,1256,1258,1260,1262,1264,1267,1269],{"class":191,"line":218},[189,1255,202],{"class":195},[189,1257,223],{"class":205},[189,1259,209],{"class":195},[189,1261,212],{"class":195},[189,1263,230],{"class":195},[189,1265,1266],{"class":233},"操作成功",[189,1268,209],{"class":195},[189,1270,239],{"class":195},[189,1272,1273,1275,1277,1279,1281],{"class":191,"line":242},[189,1274,202],{"class":195},[189,1276,247],{"class":205},[189,1278,209],{"class":195},[189,1280,212],{"class":195},[189,1282,254],{"class":195},[189,1284,1285,1287,1289,1291,1293,1295,1297,1299],{"class":191,"line":257},[189,1286,260],{"class":195},[189,1288,280],{"class":263},[189,1290,209],{"class":195},[189,1292,212],{"class":195},[189,1294,230],{"class":195},[189,1296,289],{"class":233},[189,1298,209],{"class":195},[189,1300,239],{"class":195},[189,1302,1303,1305,1307,1309,1311,1313,1315,1317],{"class":191,"line":273},[189,1304,260],{"class":195},[189,1306,82],{"class":263},[189,1308,209],{"class":195},[189,1310,212],{"class":195},[189,1312,230],{"class":195},[189,1314,309],{"class":233},[189,1316,209],{"class":195},[189,1318,239],{"class":195},[189,1320,1321,1323,1325,1327,1329,1331,1333,1335],{"class":191,"line":296},[189,1322,260],{"class":195},[189,1324,321],{"class":263},[189,1326,209],{"class":195},[189,1328,212],{"class":195},[189,1330,230],{"class":195},[189,1332,330],{"class":233},[189,1334,209],{"class":195},[189,1336,239],{"class":195},[189,1338,1339,1341,1343,1345,1347],{"class":191,"line":316},[189,1340,260],{"class":195},[189,1342,342],{"class":263},[189,1344,209],{"class":195},[189,1346,212],{"class":195},[189,1348,349],{"class":195},[189,1350,1351,1353,1355,1357,1359],{"class":191,"line":337},[189,1352,260],{"class":195},[189,1354,357],{"class":263},[189,1356,209],{"class":195},[189,1358,212],{"class":195},[189,1360,215],{"class":195},[189,1362,1363,1365,1367,1369,1371,1373,1375,1377],{"class":191,"line":352},[189,1364,260],{"class":195},[189,1366,371],{"class":263},[189,1368,209],{"class":195},[189,1370,212],{"class":195},[189,1372,230],{"class":195},[189,1374,380],{"class":233},[189,1376,209],{"class":195},[189,1378,239],{"class":195},[189,1380,1381,1383,1385,1387,1389,1391,1394],{"class":191,"line":366},[189,1382,260],{"class":195},[189,1384,392],{"class":263},[189,1386,209],{"class":195},[189,1388,212],{"class":195},[189,1390,230],{"class":195},[189,1392,1393],{"class":233},"2026-01-15T08:30:00Z",[189,1395,403],{"class":195},[189,1397,1398],{"class":191,"line":387},[189,1399,529],{"class":195},[189,1401,1402,1404,1406,1408,1410,1412,1414],{"class":191,"line":406},[189,1403,202],{"class":195},[189,1405,537],{"class":205},[189,1407,209],{"class":195},[189,1409,212],{"class":195},[189,1411,230],{"class":195},[189,1413,1393],{"class":233},[189,1415,403],{"class":195},[189,1417,1418],{"class":191,"line":412},[189,1419,553],{"class":195},[70,1421,1422],{},[76,1423,104],{},[106,1425,1426,1434],{},[109,1427,1428],{},[112,1429,1430,1432],{},[115,1431,117],{},[115,1433,120],{},[122,1435,1436,1443,1450],{},[112,1437,1438,1440],{},[127,1439,574],{},[127,1441,1442],{},"获取成功",[112,1444,1445,1447],{},[127,1446,588],{},[127,1448,1449],{},"未登录或令牌无效",[112,1451,1452,1454],{},[127,1453,1140],{},[127,1455,1143],{},[150,1457],{},[61,1459,1460],{"id":1460},"更新个人信息",[65,1462,1464],{"method":1463,"path":1223,":auth":84},"PUT",[70,1465,1466],{},"更新当前登录用户的用户名与头像 URL。",[70,1468,1469],{},[76,1470,78],{},[80,1472,1473],{"name":321,"type":83,":required":84},[70,1474,1475],{},"新的用户名",[80,1477,1478],{"name":342,"type":83},[70,1479,1480],{},"新的头像 URL",[70,1482,1483],{},[76,1484,104],{},[106,1486,1487,1495],{},[109,1488,1489],{},[112,1490,1491,1493],{},[115,1492,117],{},[115,1494,120],{},[122,1496,1497,1504,1511,1517],{},[112,1498,1499,1501],{},[127,1500,574],{},[127,1502,1503],{},"更新成功",[112,1505,1506,1508],{},[127,1507,137],{},[127,1509,1510],{},"用户名或头像 URL 格式无效",[112,1512,1513,1515],{},[127,1514,588],{},[127,1516,1449],{},[112,1518,1519,1521],{},[127,1520,1140],{},[127,1522,1143],{},[150,1524],{},[61,1526,1527],{"id":1527},"上传头像",[65,1529,1531],{"method":67,"path":1530,":auth":84},"/auth/me/avatar",[70,1532,1533,1534,1537],{},"上传用户头像。使用 ",[186,1535,1536],{},"multipart/form-data"," 格式。",[70,1539,1540],{},[76,1541,78],{},[80,1543,1546],{"name":1544,"type":1545,":required":84},"file","binary",[70,1547,1548],{},"头像图片文件",[70,1550,1551],{},[76,1552,177],{},[179,1554,1556],{"className":181,"code":1555,"language":183,"meta":184,"style":184},"{\n  \"success\": true,\n  \"message\": \"头像上传成功\",\n  \"data\": {\n    \"avatar\": \"https://cdn-momohub.hanasaki.tech/avatars/8ebc8550-6d4b-4dd0-967b-3e1367a4abf1.jpg\"\n  },\n  \"timestamp\": \"2026-01-15T08:30:00Z\"\n}\n",[186,1557,1558,1562,1574,1593,1605,1622,1626,1642],{"__ignoreMap":184},[189,1559,1560],{"class":191,"line":192},[189,1561,196],{"class":195},[189,1563,1564,1566,1568,1570,1572],{"class":191,"line":199},[189,1565,202],{"class":195},[189,1567,206],{"class":205},[189,1569,209],{"class":195},[189,1571,212],{"class":195},[189,1573,215],{"class":195},[189,1575,1576,1578,1580,1582,1584,1586,1589,1591],{"class":191,"line":218},[189,1577,202],{"class":195},[189,1579,223],{"class":205},[189,1581,209],{"class":195},[189,1583,212],{"class":195},[189,1585,230],{"class":195},[189,1587,1588],{"class":233},"头像上传成功",[189,1590,209],{"class":195},[189,1592,239],{"class":195},[189,1594,1595,1597,1599,1601,1603],{"class":191,"line":242},[189,1596,202],{"class":195},[189,1598,247],{"class":205},[189,1600,209],{"class":195},[189,1602,212],{"class":195},[189,1604,254],{"class":195},[189,1606,1607,1609,1611,1613,1615,1617,1620],{"class":191,"line":257},[189,1608,260],{"class":195},[189,1610,342],{"class":263},[189,1612,209],{"class":195},[189,1614,212],{"class":195},[189,1616,230],{"class":195},[189,1618,1619],{"class":233},"https://cdn-momohub.hanasaki.tech/avatars/8ebc8550-6d4b-4dd0-967b-3e1367a4abf1.jpg",[189,1621,403],{"class":195},[189,1623,1624],{"class":191,"line":273},[189,1625,529],{"class":195},[189,1627,1628,1630,1632,1634,1636,1638,1640],{"class":191,"line":296},[189,1629,202],{"class":195},[189,1631,537],{"class":205},[189,1633,209],{"class":195},[189,1635,212],{"class":195},[189,1637,230],{"class":195},[189,1639,1393],{"class":233},[189,1641,403],{"class":195},[189,1643,1644],{"class":191,"line":316},[189,1645,553],{"class":195},[70,1647,1648],{},[76,1649,104],{},[106,1651,1652,1660],{},[109,1653,1654],{},[112,1655,1656,1658],{},[115,1657,117],{},[115,1659,120],{},[122,1661,1662,1669,1676],{},[112,1663,1664,1666],{},[127,1665,574],{},[127,1667,1668],{},"上传成功",[112,1670,1671,1673],{},[127,1672,137],{},[127,1674,1675],{},"未上传文件或文件格式无效",[112,1677,1678,1680],{},[127,1679,588],{},[127,1681,1449],{},[150,1683],{},[61,1685,1686],{"id":1686},"修改密码",[65,1688,1690],{"method":67,"path":1689,":auth":84},"/auth/password/change",[70,1691,1692],{},"已登录用户修改自己的密码。",[70,1694,1695],{},[76,1696,78],{},[80,1698,1700],{"name":1699,"type":83,":required":84},"oldPassword",[70,1701,1702],{},"当前密码",[80,1704,1706],{"name":1705,"type":83,":required":84},"newPassword",[70,1707,1172],{},[70,1709,1710],{},[76,1711,104],{},[106,1713,1714,1722],{},[109,1715,1716],{},[112,1717,1718,1720],{},[115,1719,117],{},[115,1721,120],{},[122,1723,1724,1731,1738],{},[112,1725,1726,1728],{},[127,1727,574],{},[127,1729,1730],{},"密码修改成功",[112,1732,1733,1735],{},[127,1734,137],{},[127,1736,1737],{},"oldPassword/newPassword 格式不符",[112,1739,1740,1742],{},[127,1741,588],{},[127,1743,1744],{},"旧密码错误或未登录",[150,1746],{},[61,1748,1749],{"id":1749},"注销账号",[65,1751,1754],{"method":1752,"path":1753,":auth":84},"DELETE","/auth/account",[70,1755,1756],{},"永久删除当前用户账号。",[70,1758,1759],{},[76,1760,104],{},[106,1762,1763,1771],{},[109,1764,1765],{},[112,1766,1767,1769],{},[115,1768,117],{},[115,1770,120],{},[122,1772,1773,1780],{},[112,1774,1775,1777],{},[127,1776,995],{},[127,1778,1779],{},"账号已删除",[112,1781,1782,1784],{},[127,1783,588],{},[127,1785,1449],{},[1787,1788,1789],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":184,"searchDepth":192,"depth":199,"links":1791},[1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803],{"id":63,"depth":199,"text":63},{"id":154,"depth":199,"text":154},{"id":604,"depth":199,"text":605},{"id":959,"depth":199,"text":959},{"id":1003,"depth":199,"text":1004},{"id":1078,"depth":199,"text":1078},{"id":1148,"depth":199,"text":1148},{"id":1219,"depth":199,"text":1219},{"id":1460,"depth":199,"text":1460},{"id":1527,"depth":199,"text":1527},{"id":1686,"depth":199,"text":1686},{"id":1749,"depth":199,"text":1749},"用户认证相关 API","md",null,{},{"icon":34},{"title":31,"description":1804},"qRwQxQhbGUWZPHUMDcNulUAK9zukN0IN7fnoYFqbFDQ",[1812,1814],{"title":20,"path":21,"stem":22,"description":1813,"icon":23,"children":-1},"API 错误码和错误响应格式",{"title":36,"path":37,"stem":38,"description":1815,"icon":39,"children":-1},"AI 角色管理 API",1772535253659]