mirror of
https://github.com/router-for-me/CLIProxyAPI.git
synced 2026-02-03 04:50:52 +08:00
feat(auth, docs): add label support for Gemini web token management
- Added `label` field to the management API for better token identification. - Updated request payload and validation logic to include `label` as a required field. - Adjusted documentation (`MANAGEMENT_API.md`, `MANAGEMENT_API_CN.md`) to reflect changes.
This commit is contained in:
@@ -664,7 +664,7 @@ These endpoints initiate provider login flows and return a URL to open in a brow
|
|||||||
```bash
|
```bash
|
||||||
curl -H 'Authorization: Bearer <MANAGEMENT_KEY>' \
|
curl -H 'Authorization: Bearer <MANAGEMENT_KEY>' \
|
||||||
-H 'Content-Type: application/json' \
|
-H 'Content-Type: application/json' \
|
||||||
-d '{"secure_1psid": "<__Secure-1PSID>", "secure_1psidts": "<__Secure-1PSIDTS>"}' \
|
-d '{"secure_1psid": "<__Secure-1PSID>", "secure_1psidts": "<__Secure-1PSIDTS>", "label": "<LABEL>"}' \
|
||||||
http://localhost:8317/v0/management/gemini-web-token
|
http://localhost:8317/v0/management/gemini-web-token
|
||||||
```
|
```
|
||||||
- Response:
|
- Response:
|
||||||
|
|||||||
@@ -664,7 +664,7 @@
|
|||||||
```bash
|
```bash
|
||||||
curl -H 'Authorization: Bearer <MANAGEMENT_KEY>' \
|
curl -H 'Authorization: Bearer <MANAGEMENT_KEY>' \
|
||||||
-H 'Content-Type: application/json' \
|
-H 'Content-Type: application/json' \
|
||||||
-d '{"secure_1psid": "<__Secure-1PSID>", "secure_1psidts": "<__Secure-1PSIDTS>"}' \
|
-d '{"secure_1psid": "<__Secure-1PSID>", "secure_1psidts": "<__Secure-1PSIDTS>", "label": "<LABEL>"}' \
|
||||||
http://localhost:8317/v0/management/gemini-web-token
|
http://localhost:8317/v0/management/gemini-web-token
|
||||||
```
|
```
|
||||||
- 响应:
|
- 响应:
|
||||||
|
|||||||
@@ -689,6 +689,7 @@ func (h *Handler) CreateGeminiWebToken(c *gin.Context) {
|
|||||||
var payload struct {
|
var payload struct {
|
||||||
Secure1PSID string `json:"secure_1psid"`
|
Secure1PSID string `json:"secure_1psid"`
|
||||||
Secure1PSIDTS string `json:"secure_1psidts"`
|
Secure1PSIDTS string `json:"secure_1psidts"`
|
||||||
|
Label string `json:"label"`
|
||||||
}
|
}
|
||||||
if err := c.ShouldBindJSON(&payload); err != nil {
|
if err := c.ShouldBindJSON(&payload); err != nil {
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"error": "invalid body"})
|
c.JSON(http.StatusBadRequest, gin.H{"error": "invalid body"})
|
||||||
@@ -696,6 +697,7 @@ func (h *Handler) CreateGeminiWebToken(c *gin.Context) {
|
|||||||
}
|
}
|
||||||
payload.Secure1PSID = strings.TrimSpace(payload.Secure1PSID)
|
payload.Secure1PSID = strings.TrimSpace(payload.Secure1PSID)
|
||||||
payload.Secure1PSIDTS = strings.TrimSpace(payload.Secure1PSIDTS)
|
payload.Secure1PSIDTS = strings.TrimSpace(payload.Secure1PSIDTS)
|
||||||
|
payload.Label = strings.TrimSpace(payload.Label)
|
||||||
if payload.Secure1PSID == "" {
|
if payload.Secure1PSID == "" {
|
||||||
c.JSON(http.StatusBadRequest, gin.H{"error": "secure_1psid is required"})
|
c.JSON(http.StatusBadRequest, gin.H{"error": "secure_1psid is required"})
|
||||||
return
|
return
|
||||||
@@ -704,6 +706,10 @@ func (h *Handler) CreateGeminiWebToken(c *gin.Context) {
|
|||||||
c.JSON(http.StatusBadRequest, gin.H{"error": "secure_1psidts is required"})
|
c.JSON(http.StatusBadRequest, gin.H{"error": "secure_1psidts is required"})
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
if payload.Label == "" {
|
||||||
|
c.JSON(http.StatusBadRequest, gin.H{"error": "label is required"})
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
sha := sha256.New()
|
sha := sha256.New()
|
||||||
sha.Write([]byte(payload.Secure1PSID))
|
sha.Write([]byte(payload.Secure1PSID))
|
||||||
@@ -713,6 +719,7 @@ func (h *Handler) CreateGeminiWebToken(c *gin.Context) {
|
|||||||
tokenStorage := &geminiAuth.GeminiWebTokenStorage{
|
tokenStorage := &geminiAuth.GeminiWebTokenStorage{
|
||||||
Secure1PSID: payload.Secure1PSID,
|
Secure1PSID: payload.Secure1PSID,
|
||||||
Secure1PSIDTS: payload.Secure1PSIDTS,
|
Secure1PSIDTS: payload.Secure1PSIDTS,
|
||||||
|
Label: payload.Label,
|
||||||
}
|
}
|
||||||
// Provide a stable label (gemini-web-<hash>) for logging and identification
|
// Provide a stable label (gemini-web-<hash>) for logging and identification
|
||||||
tokenStorage.Label = strings.TrimSuffix(fileName, ".json")
|
tokenStorage.Label = strings.TrimSuffix(fileName, ".json")
|
||||||
|
|||||||
Reference in New Issue
Block a user