change some interfaces

This commit is contained in:
Livio Amstutz 2020-09-09 16:00:19 +02:00
parent bfbd4adb1c
commit eaf47fde8e
10 changed files with 130 additions and 20 deletions

View file

@ -27,6 +27,26 @@ type VerifyExchanger interface {
ClientJWTVerifier() rp.Verifier
}
func tokenHandler(exchanger Exchanger) func(w http.ResponseWriter, r *http.Request) {
return func(w http.ResponseWriter, r *http.Request) {
switch r.FormValue("grant_type") {
case string(oidc.GrantTypeCode):
CodeExchange(w, r, exchanger)
return
case string(oidc.GrantTypeBearer):
JWTExchange(w, r, exchanger)
return
case "excahnge":
TokenExchange(w, r, exchanger)
case "":
RequestError(w, r, ErrInvalidRequest("grant_type missing"))
return
default:
}
}
}
func CodeExchange(w http.ResponseWriter, r *http.Request, exchanger Exchanger) {
tokenReq, err := ParseAccessTokenRequest(r, exchanger.Decoder())
if err != nil {