MCPcopy Create free account
hub / github.com/boringproxy/boringproxy / handleTokens

Method handleTokens

api.go:177–215  ·  view source on GitHub ↗
(w http.ResponseWriter, r *http.Request)

Source from the content-addressed store, hash-verified

175}
176
177func (a *Api) handleTokens(w http.ResponseWriter, r *http.Request) {
178 token, err := extractToken("access_token", r)
179 if err != nil {
180 w.WriteHeader(401)
181 w.Write([]byte("No token provided"))
182 return
183 }
184
185 tokenData, exists := a.db.GetTokenData(token)
186 if !exists {
187 w.WriteHeader(403)
188 w.Write([]byte("Not authorized"))
189 return
190 }
191
192 if tokenData.Client != "" {
193 w.WriteHeader(403)
194 io.WriteString(w, "Token cannot be used to manage tokens")
195 return
196 }
197
198 switch r.Method {
199 case "GET":
200 tokens := a.GetTokens(tokenData, r.Form)
201 json.NewEncoder(w).Encode(tokens)
202 case "POST":
203 r.ParseForm()
204 token, err := a.CreateToken(tokenData, r.Form)
205 if err != nil {
206 w.WriteHeader(500)
207 w.Write([]byte(err.Error()))
208 }
209
210 io.WriteString(w, token)
211 default:
212 w.WriteHeader(405)
213 fmt.Fprintf(w, "Invalid method for /api/tokens")
214 }
215}
216
217func (a *Api) handleClients(w http.ResponseWriter, r *http.Request) {
218

Callers

nothing calls this directly

Calls 5

GetTokensMethod · 0.95
CreateTokenMethod · 0.95
extractTokenFunction · 0.85
GetTokenDataMethod · 0.80
WriteMethod · 0.45

Tested by

no test coverage detected