Commit 7315ea4
committed
fix(hub/wecom): use parseAccessToken for bind validation
The naive prefix-strip accepted any text starting with `${cliApiToken}:`
and stored the suffix as the namespace, so `TOKEN:foo:bar` was
confirmed as namespace `foo:bar` — but parseAccessToken (used by the
CLI and /api/auth) splits on the LAST colon and would parse the same
input as baseToken=`TOKEN:foo`, namespace=`bar`, then reject it
because the base token doesn't match. Net effect: a persisted WeCom
binding for a namespace no client could ever authenticate into.
Replace the manual parse with parseAccessToken + constantTimeEquals
on the base token. Now WeCom accepts exactly what the rest of HAPI
accepts: bare TOKEN binds to `default`, TOKEN:<ns> binds to <ns>,
TOKEN:foo:bar is rejected.1 parent 5f264a2 commit 7315ea4
2 files changed
Lines changed: 36 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
257 | 257 | | |
258 | 258 | | |
259 | 259 | | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
| 280 | + | |
| 281 | + | |
260 | 282 | | |
261 | 283 | | |
262 | 284 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
| 19 | + | |
18 | 20 | | |
19 | 21 | | |
20 | 22 | | |
| |||
168 | 170 | | |
169 | 171 | | |
170 | 172 | | |
171 | | - | |
| 173 | + | |
172 | 174 | | |
173 | 175 | | |
174 | 176 | | |
175 | | - | |
176 | | - | |
177 | | - | |
178 | | - | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
179 | 185 | | |
180 | | - | |
181 | | - | |
182 | | - | |
183 | | - | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
184 | 189 | | |
185 | 190 | | |
186 | 191 | | |
| |||
0 commit comments