Skip to content

Commit b68fe18

Browse files
committed
Deployed 63dc914 to v2 with MkDocs 1.6.1 and mike 1.1.2
1 parent 0362727 commit b68fe18

File tree

2 files changed

+61
-118
lines changed

2 files changed

+61
-118
lines changed

v2/dev_manual/api_manual/index.html

Lines changed: 60 additions & 117 deletions
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@
9999
<div data-md-component="skip">
100100

101101

102-
<a href="#api" class="md-skip">
102+
<a href="#1" class="md-skip">
103103
跳转至
104104
</a>
105105

@@ -2937,55 +2937,37 @@
29372937
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
29382938

29392939
<li class="md-nav__item">
2940-
<a href="#api" class="md-nav__link">
2940+
<a href="#1" class="md-nav__link">
29412941
<span class="md-ellipsis">
2942-
API 接口配置与使用指南
2942+
1 接口配置说明
29432943
</span>
29442944
</a>
29452945

2946-
<nav class="md-nav" aria-label="API 接口配置与使用指南">
2946+
<nav class="md-nav" aria-label="1 接口配置说明">
29472947
<ul class="md-nav__list">
29482948

29492949
<li class="md-nav__item">
2950-
<a href="#swagger" class="md-nav__link">
2950+
<a href="#11-token" class="md-nav__link">
29512951
<span class="md-ellipsis">
2952-
以下内容已通过 Swagger 进行验证
2952+
1.1 自定义 Token 格式
29532953
</span>
29542954
</a>
29552955

29562956
</li>
29572957

29582958
<li class="md-nav__item">
2959-
<a href="#token" class="md-nav__link">
2959+
<a href="#12-header" class="md-nav__link">
29602960
<span class="md-ellipsis">
2961-
自定义 Token 格式
2961+
1.2 请求 Header 设计
29622962
</span>
29632963
</a>
29642964

29652965
</li>
29662966

29672967
<li class="md-nav__item">
2968-
<a href="#header" class="md-nav__link">
2968+
<a href="#13" class="md-nav__link">
29692969
<span class="md-ellipsis">
2970-
请求 Header 设计
2971-
</span>
2972-
</a>
2973-
2974-
</li>
2975-
2976-
<li class="md-nav__item">
2977-
<a href="#_1" class="md-nav__link">
2978-
<span class="md-ellipsis">
2979-
示例请求头:
2980-
</span>
2981-
</a>
2982-
2983-
</li>
2984-
2985-
<li class="md-nav__item">
2986-
<a href="#go" class="md-nav__link">
2987-
<span class="md-ellipsis">
2988-
示例实现代码(go)
2970+
1.3 示例实现代码
29892971
</span>
29902972
</a>
29912973

@@ -2997,27 +2979,18 @@
29972979
</li>
29982980

29992981
<li class="md-nav__item">
3000-
<a href="#_2" class="md-nav__link">
2982+
<a href="#2" class="md-nav__link">
30012983
<span class="md-ellipsis">
3002-
注意事项
2984+
2 注意事项
30032985
</span>
30042986
</a>
30052987

30062988
</li>
30072989

30082990
<li class="md-nav__item">
3009-
<a href="#_3" class="md-nav__link">
2991+
<a href="#3" class="md-nav__link">
30102992
<span class="md-ellipsis">
3011-
常见问题
3012-
</span>
3013-
</a>
3014-
3015-
</li>
3016-
3017-
<li class="md-nav__item">
3018-
<a href="#_4" class="md-nav__link">
3019-
<span class="md-ellipsis">
3020-
结语
2993+
3 常见问题
30212994
</span>
30222995
</a>
30232996

@@ -3100,55 +3073,37 @@
31003073
<ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
31013074

31023075
<li class="md-nav__item">
3103-
<a href="#api" class="md-nav__link">
3076+
<a href="#1" class="md-nav__link">
31043077
<span class="md-ellipsis">
3105-
API 接口配置与使用指南
3078+
1 接口配置说明
31063079
</span>
31073080
</a>
31083081

3109-
<nav class="md-nav" aria-label="API 接口配置与使用指南">
3082+
<nav class="md-nav" aria-label="1 接口配置说明">
31103083
<ul class="md-nav__list">
31113084

31123085
<li class="md-nav__item">
3113-
<a href="#swagger" class="md-nav__link">
3114-
<span class="md-ellipsis">
3115-
以下内容已通过 Swagger 进行验证
3116-
</span>
3117-
</a>
3118-
3119-
</li>
3120-
3121-
<li class="md-nav__item">
3122-
<a href="#token" class="md-nav__link">
3123-
<span class="md-ellipsis">
3124-
自定义 Token 格式
3125-
</span>
3126-
</a>
3127-
3128-
</li>
3129-
3130-
<li class="md-nav__item">
3131-
<a href="#header" class="md-nav__link">
3086+
<a href="#11-token" class="md-nav__link">
31323087
<span class="md-ellipsis">
3133-
请求 Header 设计
3088+
1.1 自定义 Token 格式
31343089
</span>
31353090
</a>
31363091

31373092
</li>
31383093

31393094
<li class="md-nav__item">
3140-
<a href="#_1" class="md-nav__link">
3095+
<a href="#12-header" class="md-nav__link">
31413096
<span class="md-ellipsis">
3142-
示例请求头:
3097+
1.2 请求 Header 设计
31433098
</span>
31443099
</a>
31453100

31463101
</li>
31473102

31483103
<li class="md-nav__item">
3149-
<a href="#go" class="md-nav__link">
3104+
<a href="#13" class="md-nav__link">
31503105
<span class="md-ellipsis">
3151-
示例实现代码(go)
3106+
1.3 示例实现代码
31523107
</span>
31533108
</a>
31543109

@@ -3160,27 +3115,18 @@
31603115
</li>
31613116

31623117
<li class="md-nav__item">
3163-
<a href="#_2" class="md-nav__link">
3118+
<a href="#2" class="md-nav__link">
31643119
<span class="md-ellipsis">
3165-
注意事项
3120+
2 注意事项
31663121
</span>
31673122
</a>
31683123

31693124
</li>
31703125

31713126
<li class="md-nav__item">
3172-
<a href="#_3" class="md-nav__link">
3127+
<a href="#3" class="md-nav__link">
31733128
<span class="md-ellipsis">
3174-
常见问题
3175-
</span>
3176-
</a>
3177-
3178-
</li>
3179-
3180-
<li class="md-nav__item">
3181-
<a href="#_4" class="md-nav__link">
3182-
<span class="md-ellipsis">
3183-
结语
3129+
3 常见问题
31843130
</span>
31853131
</a>
31863132

@@ -3204,12 +3150,15 @@
32043150

32053151
<h1>API 接口</h1>
32063152

3207-
<h2 id="api">API 接口配置与使用指南<a class="headerlink" href="#api" title="Permanent link">⚓︎</a></h2>
3153+
<div class="admonition note"></div>
32083154
<p>本文档详细介绍了如何在三方服务中使用自定义 Token 的验证来访问面板接口。</p>
3209-
<h3 id="swagger">以下内容已通过 Swagger 进行验证<a class="headerlink" href="#swagger" title="Permanent link">⚓︎</a></h3>
3210-
<p>面板 swagger 访问地址:<code>{host}:{port}/1panel/swagger/index.html</code></p>
3211-
<h3 id="token">自定义 Token 格式<a class="headerlink" href="#token" title="Permanent link">⚓︎</a></h3>
3212-
<p>我们设计了以下自定义 Token 格式,用于接口请求的身份验证:</p>
3155+
<h2 id="1">1 接口配置说明<a class="headerlink" href="#1" title="Permanent link">⚓︎</a></h2>
3156+
<div class="admonition note">
3157+
<p>登录后,可通过访问 swagger 访问地址:<code>{host}:{port}/1panel/swagger/index.html</code> 查看所有 API。</p>
3158+
</div>
3159+
<h3 id="11-token">1.1 自定义 Token 格式<a class="headerlink" href="#11-token" title="Permanent link">⚓︎</a></h3>
3160+
<div class="admonition note">
3161+
<p>1Panel 设计了以下自定义 Token 格式,用于接口请求的身份验证:</p>
32133162
<div class="highlight"><pre><span></span><code>Token = md5(&#39;1panel&#39; + API-Key + UnixTimestamp)
32143163
</code></pre></div>
32153164
<p>组成部分:</p>
@@ -3218,7 +3167,9 @@ <h3 id="token">自定义 Token 格式<a class="headerlink" href="#token" title="
32183167
<li>API-Key: 面板 API 接口密钥</li>
32193168
<li>UnixTimestamp: 当前的时间戳(秒级)</li>
32203169
</ul>
3221-
<h3 id="header">请求 Header 设计<a class="headerlink" href="#header" title="Permanent link">⚓︎</a></h3>
3170+
</div>
3171+
<h3 id="12-header">1.2 请求 Header 设计<a class="headerlink" href="#12-header" title="Permanent link">⚓︎</a></h3>
3172+
<div class="admonition note">
32223173
<p>每次请求必须携带以下两个 Header:</p>
32233174
<table>
32243175
<thead>
@@ -3238,12 +3189,15 @@ <h3 id="header">请求 Header 设计<a class="headerlink" href="#header" title="
32383189
</tr>
32393190
</tbody>
32403191
</table>
3241-
<h3 id="_1">示例请求头:<a class="headerlink" href="#_1" title="Permanent link">⚓︎</a></h3>
3192+
<p>示例请求头:</p>
32423193
<div class="highlight"><pre><span></span><code>curl<span class="w"> </span>-X<span class="w"> </span>GET<span class="w"> </span><span class="s2">&quot;http://localhost:4004/api/v1/dashboard/current&quot;</span><span class="w"> </span><span class="se">\</span>
32433194
-H<span class="w"> </span><span class="s2">&quot;1Panel-Token: &lt;1panel_token&gt;&quot;</span><span class="w"> </span><span class="se">\</span>
32443195
-H<span class="w"> </span><span class="s2">&quot;1Panel-Timestamp: &lt;current_unix_timestamp&gt;&quot;</span>
32453196
</code></pre></div>
3246-
<h3 id="go">示例实现代码(go)<a class="headerlink" href="#go" title="Permanent link">⚓︎</a></h3>
3197+
</div>
3198+
<h3 id="13">1.3 示例实现代码<a class="headerlink" href="#13" title="Permanent link">⚓︎</a></h3>
3199+
<div class="admonition note">
3200+
<p>以 go 语言为例,展示对应的实现代码:</p>
32473201
<div class="highlight"><pre><span></span><code><span class="kd">func</span><span class="w"> </span><span class="nx">validateToken</span><span class="p">(</span><span class="nx">c</span><span class="w"> </span><span class="o">*</span><span class="nx">gin</span><span class="p">.</span><span class="nx">Context</span><span class="p">)</span><span class="w"> </span><span class="kt">error</span><span class="w"> </span><span class="p">{</span>
32483202
<span class="w"> </span><span class="nx">panelToken</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">c</span><span class="p">.</span><span class="nx">GetHeader</span><span class="p">(</span><span class="s">&quot;1Panel-Token&quot;</span><span class="p">)</span>
32493203
<span class="w"> </span><span class="nx">panelTimestamp</span><span class="w"> </span><span class="o">:=</span><span class="w"> </span><span class="nx">c</span><span class="p">.</span><span class="nx">GetHeader</span><span class="p">(</span><span class="s">&quot;1Panel-Timestamp&quot;</span><span class="p">)</span>
@@ -3262,36 +3216,25 @@ <h3 id="go">示例实现代码(go)<a class="headerlink" href="#go" title="Perman
32623216
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">hex</span><span class="p">.</span><span class="nx">EncodeToString</span><span class="p">(</span><span class="nx">h</span><span class="p">.</span><span class="nx">Sum</span><span class="p">(</span><span class="kc">nil</span><span class="p">))</span>
32633217
<span class="p">}</span>
32643218
</code></pre></div>
3265-
<h2 id="_2">注意事项<a class="headerlink" href="#_2" title="Permanent link">⚓︎</a></h2>
3266-
<ol>
3267-
<li>
3268-
<p>时间戳的有效性:
3269-
需要确保服务器与客户端时间同步,否则会导致验证失败。建议使用 NTP 同步时间。</p>
3270-
</li>
3271-
<li>
3272-
<p>白名单使用:
3273-
将可信任的 IP 或 IP 段加入白名单,避免频繁 Token 验证的开销;如需放行所有 IP ,可以配置 <code>0.0.0.0</code></p>
3274-
</li>
3275-
</ol>
3276-
<h2 id="_3">常见问题<a class="headerlink" href="#_3" title="Permanent link">⚓︎</a></h2>
3277-
<ol>
3278-
<li>
3279-
<p>Q: 如果 1Panel-Token或1Panel-Timestamp 错误怎么办?
3280-
A: 返回 401 Unauthorized,提示 "API 接口密钥错误"。</p>
3281-
</li>
3282-
<li>
3283-
<p>Q: 如何生成 1Panel-Token?
3284-
A: 参考以下伪代码:</p>
3285-
</li>
3286-
</ol>
3219+
</div>
3220+
<h2 id="2">2 注意事项<a class="headerlink" href="#2" title="Permanent link">⚓︎</a></h2>
3221+
<div class="admonition note">
3222+
<ul>
3223+
<li>时间戳的有效性:需要确保服务器与客户端时间同步,否则会导致验证失败。建议使用 NTP 同步时间。</li>
3224+
<li>白名单使用:将可信任的 IP 或 IP 段加入白名单,避免频繁 Token 验证的开销;如需放行所有 IP ,可以配置 <code>0.0.0.0</code></li>
3225+
</ul>
3226+
</div>
3227+
<h2 id="3">3 常见问题<a class="headerlink" href="#3" title="Permanent link">⚓︎</a></h2>
3228+
<div class="admonition note">
3229+
<p>(1)如果 1Panel-Token或1Panel-Timestamp 错误怎么办?
3230+
后台将返回 401 Unauthorized,并提示 "API 接口密钥错误"。</p>
3231+
<p>(2)如何生成 1Panel-Token?</p>
3232+
<p>请参考以下伪代码:</p>
32873233
<div class="highlight"><pre><span></span><code><span class="kd">const</span><span class="w"> </span><span class="nx">token</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">md5</span><span class="p">(</span><span class="s1">&#39;1panel&#39;</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">clientToken</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">unixTimestamp</span><span class="p">);</span>
32883234
</code></pre></div>
3289-
<ol>
3290-
<li>Q: 为什么需要两个 Header?
3291-
A: 提高验证的复杂度,同时增强安全性。</li>
3292-
</ol>
3293-
<h2 id="_4">结语<a class="headerlink" href="#_4" title="Permanent link">⚓︎</a></h2>
3294-
<p>通过上述方式可以实现一个安全、高效的 Token 验证系统。如果有任何问题,请参考具体代码实现或联系我们获取支持。</p>
3235+
<p>(3)为什么需要两个 Header?
3236+
提高验证的复杂度,同时增强安全性。</p>
3237+
</div>
32953238

32963239

32973240

v2/search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)