[{"data":1,"prerenderedAt":1213},["ShallowReactive",2],{"navigation":3,"docs-\u002Fdocs\u002Fapi\u002Fauthentication":72,"surround-\u002Fdocs\u002Fapi\u002Fauthentication":1208},[4],{"title":5,"path":6,"stem":7,"children":8,"page":38},"Docs","\u002Fdocs","docs",[9,39],{"title":10,"path":11,"stem":12,"children":13,"page":38},"Guide","\u002Fdocs\u002Fguide","docs\u002F1.guide",[14,18,22,26,30,34],{"title":15,"path":16,"stem":17},"介绍","\u002Fdocs\u002Fguide\u002Fintroduction","docs\u002F1.guide\u002F1.introduction",{"title":19,"path":20,"stem":21},"快速开始","\u002Fdocs\u002Fguide\u002Fquick-start","docs\u002F1.guide\u002F2.quick-start",{"title":23,"path":24,"stem":25},"配置说明","\u002Fdocs\u002Fguide\u002Fconfiguration","docs\u002F1.guide\u002F3.configuration",{"title":27,"path":28,"stem":29},"存储配置","\u002Fdocs\u002Fguide\u002Fstorage","docs\u002F1.guide\u002F4.storage",{"title":31,"path":32,"stem":33},"生产部署","\u002Fdocs\u002Fguide\u002Fdeployment","docs\u002F1.guide\u002F5.deployment",{"title":35,"path":36,"stem":37},"第三方客户端","\u002Fdocs\u002Fguide\u002Fclients","docs\u002F1.guide\u002F6.clients",false,{"title":40,"path":41,"stem":42,"children":43,"page":38},"Api","\u002Fdocs\u002Fapi","docs\u002F2.api",[44,48,52,56,60,64,68],{"title":45,"path":46,"stem":47},"概述","\u002Fdocs\u002Fapi\u002Foverview","docs\u002F2.api\u002F1.overview",{"title":49,"path":50,"stem":51},"认证","\u002Fdocs\u002Fapi\u002Fauthentication","docs\u002F2.api\u002F2.authentication",{"title":53,"path":54,"stem":55},"文件上传","\u002Fdocs\u002Fapi\u002Fupload","docs\u002F2.api\u002F3.upload",{"title":57,"path":58,"stem":59},"文件管理","\u002Fdocs\u002Fapi\u002Ffiles","docs\u002F2.api\u002F4.files",{"title":61,"path":62,"stem":63},"相册","\u002Fdocs\u002Fapi\u002Falbums","docs\u002F2.api\u002F5.albums",{"title":65,"path":66,"stem":67},"API Token","\u002Fdocs\u002Fapi\u002Ftokens","docs\u002F2.api\u002F6.tokens",{"title":69,"path":70,"stem":71},"管理员 API","\u002Fdocs\u002Fapi\u002Fadmin","docs\u002F2.api\u002F7.admin",{"id":73,"title":49,"body":74,"description":1202,"extension":1203,"meta":1204,"navigation":1205,"path":50,"seo":1206,"stem":51,"__hash__":1207},"docs\u002Fdocs\u002F2.api\u002F2.authentication.md",{"type":75,"value":76,"toc":1171},"minimark",[77,81,142,145,155,162,166,209,265,268,443,446,479,482,489,496,499,544,585,588,620,624,631,634,637,660,663,666,669,681,684,724,727,737,740,887,890,899,902,948,951,954,963,966,1001,1004,1013,1027,1030,1074,1088,1092,1145,1152,1155,1167],[78,79,80],"h2",{"id":80},"认证流程",[82,83,88],"pre",{"className":84,"code":85,"language":86,"meta":87,"style":87},"language-mermaid shiki shiki-themes github-light github-dark","flowchart TD\n    Login[POST \u002Fauth\u002Flogin] --> Access[获得 Access Token]\n    Access --> Call[调用受保护接口]\n    Call --> Expired{Access 过期?}\n    Expired -- 否 --> Success[返回业务数据]\n    Expired -- 是 --> Refresh[POST \u002Fauth\u002Frefresh]\n    Refresh --> NewToken[获得新 Token 对]\n    NewToken --> Call\n","mermaid","",[89,90,91,100,106,112,118,124,130,136],"code",{"__ignoreMap":87},[92,93,96],"span",{"class":94,"line":95},"line",1,[92,97,99],{"class":98},"sVt8B","flowchart TD\n",[92,101,103],{"class":94,"line":102},2,[92,104,105],{"class":98},"    Login[POST \u002Fauth\u002Flogin] --> Access[获得 Access Token]\n",[92,107,109],{"class":94,"line":108},3,[92,110,111],{"class":98},"    Access --> Call[调用受保护接口]\n",[92,113,115],{"class":94,"line":114},4,[92,116,117],{"class":98},"    Call --> Expired{Access 过期?}\n",[92,119,121],{"class":94,"line":120},5,[92,122,123],{"class":98},"    Expired -- 否 --> Success[返回业务数据]\n",[92,125,127],{"class":94,"line":126},6,[92,128,129],{"class":98},"    Expired -- 是 --> Refresh[POST \u002Fauth\u002Frefresh]\n",[92,131,133],{"class":94,"line":132},7,[92,134,135],{"class":98},"    Refresh --> NewToken[获得新 Token 对]\n",[92,137,139],{"class":94,"line":138},8,[92,140,141],{"class":98},"    NewToken --> Call\n",[78,143,144],{"id":144},"登录",[146,147,148],"endpoint",{},[149,150,151,152],"p",{},"POST · ",[89,153,154],{},"\u002Fapi\u002Fv1\u002Fauth\u002Flogin",[149,156,157,158,161],{},"无需认证。成功时返回一对 Access\u002FRefresh Token，并在 Cookie 中写入 ",[89,159,160],{},"access_token","。",[163,164,165],"h3",{"id":165},"请求",[82,167,171],{"className":168,"code":169,"language":170,"meta":87,"style":87},"language-json shiki shiki-themes github-light github-dark","{\n  \"username\": \"alice\",\n  \"password\": \"secret123\"\n}\n","json",[89,172,173,178,194,204],{"__ignoreMap":87},[92,174,175],{"class":94,"line":95},[92,176,177],{"class":98},"{\n",[92,179,180,184,187,191],{"class":94,"line":102},[92,181,183],{"class":182},"sj4cs","  \"username\"",[92,185,186],{"class":98},": ",[92,188,190],{"class":189},"sZZnC","\"alice\"",[92,192,193],{"class":98},",\n",[92,195,196,199,201],{"class":94,"line":108},[92,197,198],{"class":182},"  \"password\"",[92,200,186],{"class":98},[92,202,203],{"class":189},"\"secret123\"\n",[92,205,206],{"class":94,"line":114},[92,207,208],{"class":98},"}\n",[210,211,212,231],"table",{},[213,214,215],"thead",{},[216,217,218,222,225,228],"tr",{},[219,220,221],"th",{},"字段",[219,223,224],{},"类型",[219,226,227],{},"必填",[219,229,230],{},"说明",[232,233,234,251],"tbody",{},[216,235,236,242,245,248],{},[237,238,239],"td",{},[89,240,241],{},"username",[237,243,244],{},"string",[237,246,247],{},"✓",[237,249,250],{},"用户名或邮箱",[216,252,253,258,260,262],{},[237,254,255],{},[89,256,257],{},"password",[237,259,244],{},[237,261,247],{},[237,263,264],{},"密码",[163,266,267],{"id":267},"响应",[82,269,271],{"className":168,"code":270,"language":170,"meta":87,"style":87},"{\n  \"code\": 0,\n  \"message\": \"success\",\n  \"data\": {\n    \"access_token\": \"eyJhbGciOi...\",\n    \"refresh_token\": \"eyJhbGciOi...\",\n    \"expires_in\": 7200,\n    \"token_type\": \"Bearer\",\n    \"user\": {\n      \"id\": \"uuid\",\n      \"username\": \"alice\",\n      \"email\": \"alice@example.com\",\n      \"role\": \"user\",\n      \"password_must_change\": false\n    }\n  }\n}\n",[89,272,273,277,289,301,309,321,332,344,356,364,377,389,402,415,426,432,438],{"__ignoreMap":87},[92,274,275],{"class":94,"line":95},[92,276,177],{"class":98},[92,278,279,282,284,287],{"class":94,"line":102},[92,280,281],{"class":182},"  \"code\"",[92,283,186],{"class":98},[92,285,286],{"class":182},"0",[92,288,193],{"class":98},[92,290,291,294,296,299],{"class":94,"line":108},[92,292,293],{"class":182},"  \"message\"",[92,295,186],{"class":98},[92,297,298],{"class":189},"\"success\"",[92,300,193],{"class":98},[92,302,303,306],{"class":94,"line":114},[92,304,305],{"class":182},"  \"data\"",[92,307,308],{"class":98},": {\n",[92,310,311,314,316,319],{"class":94,"line":120},[92,312,313],{"class":182},"    \"access_token\"",[92,315,186],{"class":98},[92,317,318],{"class":189},"\"eyJhbGciOi...\"",[92,320,193],{"class":98},[92,322,323,326,328,330],{"class":94,"line":126},[92,324,325],{"class":182},"    \"refresh_token\"",[92,327,186],{"class":98},[92,329,318],{"class":189},[92,331,193],{"class":98},[92,333,334,337,339,342],{"class":94,"line":132},[92,335,336],{"class":182},"    \"expires_in\"",[92,338,186],{"class":98},[92,340,341],{"class":182},"7200",[92,343,193],{"class":98},[92,345,346,349,351,354],{"class":94,"line":138},[92,347,348],{"class":182},"    \"token_type\"",[92,350,186],{"class":98},[92,352,353],{"class":189},"\"Bearer\"",[92,355,193],{"class":98},[92,357,359,362],{"class":94,"line":358},9,[92,360,361],{"class":182},"    \"user\"",[92,363,308],{"class":98},[92,365,367,370,372,375],{"class":94,"line":366},10,[92,368,369],{"class":182},"      \"id\"",[92,371,186],{"class":98},[92,373,374],{"class":189},"\"uuid\"",[92,376,193],{"class":98},[92,378,380,383,385,387],{"class":94,"line":379},11,[92,381,382],{"class":182},"      \"username\"",[92,384,186],{"class":98},[92,386,190],{"class":189},[92,388,193],{"class":98},[92,390,392,395,397,400],{"class":94,"line":391},12,[92,393,394],{"class":182},"      \"email\"",[92,396,186],{"class":98},[92,398,399],{"class":189},"\"alice@example.com\"",[92,401,193],{"class":98},[92,403,405,408,410,413],{"class":94,"line":404},13,[92,406,407],{"class":182},"      \"role\"",[92,409,186],{"class":98},[92,411,412],{"class":189},"\"user\"",[92,414,193],{"class":98},[92,416,418,421,423],{"class":94,"line":417},14,[92,419,420],{"class":182},"      \"password_must_change\"",[92,422,186],{"class":98},[92,424,425],{"class":182},"false\n",[92,427,429],{"class":94,"line":428},15,[92,430,431],{"class":98},"    }\n",[92,433,435],{"class":94,"line":434},16,[92,436,437],{"class":98},"  }\n",[92,439,441],{"class":94,"line":440},17,[92,442,208],{"class":98},[163,444,445],{"id":445},"错误",[210,447,448,458],{},[213,449,450],{},[216,451,452,455],{},[219,453,454],{},"Code",[219,456,457],{},"条件",[232,459,460,470],{},[216,461,462,467],{},[237,463,464],{},[89,465,466],{},"40100",[237,468,469],{},"用户名或密码错误",[216,471,472,476],{},[237,473,474],{},[89,475,466],{},[237,477,478],{},"账号已被禁用",[78,480,481],{"id":481},"注册",[146,483,484],{},[149,485,151,486],{},[89,487,488],{},"\u002Fapi\u002Fv1\u002Fauth\u002Fregister",[149,490,491,492,495],{},"仅当 ",[89,493,494],{},"allow_registration = true"," 时可用。",[163,497,165],{"id":498},"请求-1",[82,500,502],{"className":168,"code":501,"language":170,"meta":87,"style":87},"{\n  \"username\": \"bob\",\n  \"email\": \"bob@example.com\",\n  \"password\": \"strong-pass\"\n}\n",[89,503,504,508,519,531,540],{"__ignoreMap":87},[92,505,506],{"class":94,"line":95},[92,507,177],{"class":98},[92,509,510,512,514,517],{"class":94,"line":102},[92,511,183],{"class":182},[92,513,186],{"class":98},[92,515,516],{"class":189},"\"bob\"",[92,518,193],{"class":98},[92,520,521,524,526,529],{"class":94,"line":108},[92,522,523],{"class":182},"  \"email\"",[92,525,186],{"class":98},[92,527,528],{"class":189},"\"bob@example.com\"",[92,530,193],{"class":98},[92,532,533,535,537],{"class":94,"line":114},[92,534,198],{"class":182},[92,536,186],{"class":98},[92,538,539],{"class":189},"\"strong-pass\"\n",[92,541,542],{"class":94,"line":120},[92,543,208],{"class":98},[210,545,546,555],{},[213,547,548],{},[216,549,550,552],{},[219,551,221],{},[219,553,554],{},"约束",[232,556,557,566,576],{},[216,558,559,563],{},[237,560,561],{},[89,562,241],{},[237,564,565],{},"3-32 字符",[216,567,568,573],{},[237,569,570],{},[89,571,572],{},"email",[237,574,575],{},"RFC 邮箱",[216,577,578,582],{},[237,579,580],{},[89,581,257],{},[237,583,584],{},"6-64 字符",[163,586,445],{"id":587},"错误-1",[210,589,590,598],{},[213,591,592],{},[216,593,594,596],{},[219,595,454],{},[219,597,457],{},[232,599,600,610],{},[216,601,602,607],{},[237,603,604],{},[89,605,606],{},"40300",[237,608,609],{},"注册已关闭",[216,611,612,617],{},[237,613,614],{},[89,615,616],{},"40900",[237,618,619],{},"用户名\u002F邮箱已存在",[78,621,623],{"id":622},"刷新-token","刷新 Token",[146,625,626],{},[149,627,151,628],{},[89,629,630],{},"\u002Fapi\u002Fv1\u002Fauth\u002Frefresh",[149,632,633],{},"使用 Refresh Token 换取新的 Access Token，无需再次登录。",[163,635,165],{"id":636},"请求-2",[82,638,640],{"className":168,"code":639,"language":170,"meta":87,"style":87},"{\n  \"refresh_token\": \"eyJhbGciOi...\"\n}\n",[89,641,642,646,656],{"__ignoreMap":87},[92,643,644],{"class":94,"line":95},[92,645,177],{"class":98},[92,647,648,651,653],{"class":94,"line":102},[92,649,650],{"class":182},"  \"refresh_token\"",[92,652,186],{"class":98},[92,654,655],{"class":189},"\"eyJhbGciOi...\"\n",[92,657,658],{"class":94,"line":108},[92,659,208],{"class":98},[163,661,267],{"id":662},"响应-1",[149,664,665],{},"响应格式与登录相同，返回全新的 Access\u002FRefresh Token 对。",[78,667,668],{"id":668},"登出",[146,670,671],{},[149,672,151,673,676,677],{},[89,674,675],{},"\u002Fapi\u002Fv1\u002Fauth\u002Flogout"," · ",[678,679,680],"strong",{},"需认证",[149,682,683],{},"使当前 Token 失效并清除 Cookie。",[82,685,687],{"className":168,"code":686,"language":170,"meta":87,"style":87},"{ \"code\": 0, \"message\": \"success\", \"data\": null }\n",[89,688,689],{"__ignoreMap":87},[92,690,691,694,697,699,701,704,707,709,711,713,716,718,721],{"class":94,"line":95},[92,692,693],{"class":98},"{ ",[92,695,696],{"class":182},"\"code\"",[92,698,186],{"class":98},[92,700,286],{"class":182},[92,702,703],{"class":98},", ",[92,705,706],{"class":182},"\"message\"",[92,708,186],{"class":98},[92,710,298],{"class":189},[92,712,703],{"class":98},[92,714,715],{"class":182},"\"data\"",[92,717,186],{"class":98},[92,719,720],{"class":182},"null",[92,722,723],{"class":98}," }\n",[78,725,726],{"id":726},"获取个人资料",[146,728,729],{},[149,730,731,732,676,735],{},"GET · ",[89,733,734],{},"\u002Fapi\u002Fv1\u002Fprofile",[678,736,680],{},[163,738,267],{"id":739},"响应-2",[82,741,743],{"className":168,"code":742,"language":170,"meta":87,"style":87},"{\n  \"code\": 0,\n  \"data\": {\n    \"id\": \"uuid\",\n    \"username\": \"alice\",\n    \"nickname\": \"Alice\",\n    \"email\": \"alice@example.com\",\n    \"avatar_url\": \"https:\u002F\u002F...\",\n    \"role\": \"user\",\n    \"storage_limit\": 10737418240,\n    \"storage_used\": 521308864,\n    \"is_active\": true,\n    \"created_at\": \"2026-01-01T00:00:00Z\"\n  }\n}\n",[89,744,745,749,759,765,776,787,799,810,822,833,845,857,869,879,883],{"__ignoreMap":87},[92,746,747],{"class":94,"line":95},[92,748,177],{"class":98},[92,750,751,753,755,757],{"class":94,"line":102},[92,752,281],{"class":182},[92,754,186],{"class":98},[92,756,286],{"class":182},[92,758,193],{"class":98},[92,760,761,763],{"class":94,"line":108},[92,762,305],{"class":182},[92,764,308],{"class":98},[92,766,767,770,772,774],{"class":94,"line":114},[92,768,769],{"class":182},"    \"id\"",[92,771,186],{"class":98},[92,773,374],{"class":189},[92,775,193],{"class":98},[92,777,778,781,783,785],{"class":94,"line":120},[92,779,780],{"class":182},"    \"username\"",[92,782,186],{"class":98},[92,784,190],{"class":189},[92,786,193],{"class":98},[92,788,789,792,794,797],{"class":94,"line":126},[92,790,791],{"class":182},"    \"nickname\"",[92,793,186],{"class":98},[92,795,796],{"class":189},"\"Alice\"",[92,798,193],{"class":98},[92,800,801,804,806,808],{"class":94,"line":132},[92,802,803],{"class":182},"    \"email\"",[92,805,186],{"class":98},[92,807,399],{"class":189},[92,809,193],{"class":98},[92,811,812,815,817,820],{"class":94,"line":138},[92,813,814],{"class":182},"    \"avatar_url\"",[92,816,186],{"class":98},[92,818,819],{"class":189},"\"https:\u002F\u002F...\"",[92,821,193],{"class":98},[92,823,824,827,829,831],{"class":94,"line":358},[92,825,826],{"class":182},"    \"role\"",[92,828,186],{"class":98},[92,830,412],{"class":189},[92,832,193],{"class":98},[92,834,835,838,840,843],{"class":94,"line":366},[92,836,837],{"class":182},"    \"storage_limit\"",[92,839,186],{"class":98},[92,841,842],{"class":182},"10737418240",[92,844,193],{"class":98},[92,846,847,850,852,855],{"class":94,"line":379},[92,848,849],{"class":182},"    \"storage_used\"",[92,851,186],{"class":98},[92,853,854],{"class":182},"521308864",[92,856,193],{"class":98},[92,858,859,862,864,867],{"class":94,"line":391},[92,860,861],{"class":182},"    \"is_active\"",[92,863,186],{"class":98},[92,865,866],{"class":182},"true",[92,868,193],{"class":98},[92,870,871,874,876],{"class":94,"line":404},[92,872,873],{"class":182},"    \"created_at\"",[92,875,186],{"class":98},[92,877,878],{"class":189},"\"2026-01-01T00:00:00Z\"\n",[92,880,881],{"class":94,"line":417},[92,882,437],{"class":98},[92,884,885],{"class":94,"line":428},[92,886,208],{"class":98},[78,888,889],{"id":889},"更新个人资料",[146,891,892],{},[149,893,894,895,676,897],{},"PUT · ",[89,896,734],{},[678,898,680],{},[163,900,165],{"id":901},"请求-3",[82,903,905],{"className":168,"code":904,"language":170,"meta":87,"style":87},"{\n  \"nickname\": \"Alice Liu\",\n  \"email\": \"alice@new.example.com\",\n  \"avatar_url\": \"https:\u002F\u002F...\"\n}\n",[89,906,907,911,923,934,944],{"__ignoreMap":87},[92,908,909],{"class":94,"line":95},[92,910,177],{"class":98},[92,912,913,916,918,921],{"class":94,"line":102},[92,914,915],{"class":182},"  \"nickname\"",[92,917,186],{"class":98},[92,919,920],{"class":189},"\"Alice Liu\"",[92,922,193],{"class":98},[92,924,925,927,929,932],{"class":94,"line":108},[92,926,523],{"class":182},[92,928,186],{"class":98},[92,930,931],{"class":189},"\"alice@new.example.com\"",[92,933,193],{"class":98},[92,935,936,939,941],{"class":94,"line":114},[92,937,938],{"class":182},"  \"avatar_url\"",[92,940,186],{"class":98},[92,942,943],{"class":189},"\"https:\u002F\u002F...\"\n",[92,945,946],{"class":94,"line":120},[92,947,208],{"class":98},[149,949,950],{},"所有字段可选，仅传入想修改的字段。",[78,952,953],{"id":953},"修改密码",[146,955,956],{},[149,957,151,958,676,961],{},[89,959,960],{},"\u002Fapi\u002Fv1\u002Fauth\u002Fchange-password",[678,962,680],{},[163,964,165],{"id":965},"请求-4",[82,967,969],{"className":168,"code":968,"language":170,"meta":87,"style":87},"{\n  \"old_password\": \"secret123\",\n  \"new_password\": \"stronger-pass\"\n}\n",[89,970,971,975,987,997],{"__ignoreMap":87},[92,972,973],{"class":94,"line":95},[92,974,177],{"class":98},[92,976,977,980,982,985],{"class":94,"line":102},[92,978,979],{"class":182},"  \"old_password\"",[92,981,186],{"class":98},[92,983,984],{"class":189},"\"secret123\"",[92,986,193],{"class":98},[92,988,989,992,994],{"class":94,"line":108},[92,990,991],{"class":182},"  \"new_password\"",[92,993,186],{"class":98},[92,995,996],{"class":189},"\"stronger-pass\"\n",[92,998,999],{"class":94,"line":114},[92,1000,208],{"class":98},[78,1002,1003],{"id":1003},"首次登录重置",[146,1005,1006],{},[149,1007,151,1008,676,1011],{},[89,1009,1010],{},"\u002Fapi\u002Fv1\u002Fauth\u002Ffirst-login-reset",[678,1012,680],{},[149,1014,1015,1016,1019,1020,1023,1024,161],{},"专用于",[678,1017,1018],{},"默认管理员","首次登录后修改用户名与密码。调用成功后 ",[89,1021,1022],{},"password_must_change"," 置为 ",[89,1025,1026],{},"false",[163,1028,165],{"id":1029},"请求-5",[82,1031,1033],{"className":168,"code":1032,"language":170,"meta":87,"style":87},"{\n  \"username\": \"real-admin\",\n  \"email\": \"admin@your-domain.com\",\n  \"password\": \"strong-new-password\"\n}\n",[89,1034,1035,1039,1050,1061,1070],{"__ignoreMap":87},[92,1036,1037],{"class":94,"line":95},[92,1038,177],{"class":98},[92,1040,1041,1043,1045,1048],{"class":94,"line":102},[92,1042,183],{"class":182},[92,1044,186],{"class":98},[92,1046,1047],{"class":189},"\"real-admin\"",[92,1049,193],{"class":98},[92,1051,1052,1054,1056,1059],{"class":94,"line":108},[92,1053,523],{"class":182},[92,1055,186],{"class":98},[92,1057,1058],{"class":189},"\"admin@your-domain.com\"",[92,1060,193],{"class":98},[92,1062,1063,1065,1067],{"class":94,"line":114},[92,1064,198],{"class":182},[92,1066,186],{"class":98},[92,1068,1069],{"class":189},"\"strong-new-password\"\n",[92,1071,1072],{"class":94,"line":120},[92,1073,208],{"class":98},[1075,1076,1077],"warning",{},[149,1078,1079,1080,1083,1084,1087],{},"默认 ",[89,1081,1082],{},"admin\u002Fadmin"," 账号在完成此重置前，",[678,1085,1086],{},"无法","访问任何业务接口。",[78,1089,1091],{"id":1090},"token-生命周期","Token 生命周期",[210,1093,1094,1106],{},[213,1095,1096],{},[216,1097,1098,1100,1103],{},[219,1099,224],{},[219,1101,1102],{},"默认有效期",[219,1104,1105],{},"刷新方式",[232,1107,1108,1121,1132],{},[216,1109,1110,1113,1116],{},[237,1111,1112],{},"Access Token",[237,1114,1115],{},"2 小时",[237,1117,1118],{},[89,1119,1120],{},"POST \u002Fauth\u002Frefresh",[216,1122,1123,1126,1129],{},[237,1124,1125],{},"Refresh Token",[237,1127,1128],{},"7 天",[237,1130,1131],{},"重新登录",[216,1133,1134,1136,1139],{},[237,1135,65],{},[237,1137,1138],{},"永不过期或自定义",[237,1140,1141],{},[1142,1143,1144],"a",{"href":66},"管理",[149,1146,1147,1148,1151],{},"JWT 密钥存放在 ",[89,1149,1150],{},"settings.jwt_secret","，首次启动自动生成。",[78,1153,1154],{"id":1154},"下一步",[1156,1157,1158,1163],"ul",{},[1159,1160,1161],"li",{},[1142,1162,53],{"href":54},[1159,1164,1165],{},[1142,1166,65],{"href":66},[1168,1169,1170],"style",{},"html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}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);}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}",{"title":87,"searchDepth":108,"depth":108,"links":1172},[1173,1174,1179,1183,1187,1188,1191,1194,1197,1200,1201],{"id":80,"depth":102,"text":80},{"id":144,"depth":102,"text":144,"children":1175},[1176,1177,1178],{"id":165,"depth":108,"text":165},{"id":267,"depth":108,"text":267},{"id":445,"depth":108,"text":445},{"id":481,"depth":102,"text":481,"children":1180},[1181,1182],{"id":498,"depth":108,"text":165},{"id":587,"depth":108,"text":445},{"id":622,"depth":102,"text":623,"children":1184},[1185,1186],{"id":636,"depth":108,"text":165},{"id":662,"depth":108,"text":267},{"id":668,"depth":102,"text":668},{"id":726,"depth":102,"text":726,"children":1189},[1190],{"id":739,"depth":108,"text":267},{"id":889,"depth":102,"text":889,"children":1192},[1193],{"id":901,"depth":108,"text":165},{"id":953,"depth":102,"text":953,"children":1195},[1196],{"id":965,"depth":108,"text":165},{"id":1003,"depth":102,"text":1003,"children":1198},[1199],{"id":1029,"depth":108,"text":165},{"id":1090,"depth":102,"text":1091},{"id":1154,"depth":102,"text":1154},"登录、注册、Token 刷新与个人资料接口。","md",{},{"title":49},{"title":49,"description":1202},"mqBWwPJlzj3UnfFvklZu_NJgLXfiyjfjMH3qiDhvezY",[1209,1211],{"title":45,"path":46,"stem":47,"description":1210,"children":-1},"Kite HTTP API 的基础约定：路径、鉴权、响应结构、错误码。",{"title":53,"path":54,"stem":55,"description":1212,"children":-1},"兼容兰空 v2 协议的文件上传接口。",1776443820431]