improve userinfo token handling

This commit is contained in:
Livio Amstutz 2020-10-15 09:41:50 +02:00
parent b8d892443c
commit 44c341d42e

View file

@ -28,20 +28,14 @@ func Userinfo(w http.ResponseWriter, r *http.Request, userinfoProvider UserinfoP
http.Error(w, "access token missing", http.StatusUnauthorized)
return
}
var tokenID string
if strings.HasPrefix(accessToken, "eyJhbGci") { //TODO: improve
tokenID, err := userinfoProvider.Crypto().Decrypt(accessToken)
if err != nil {
accessTokenClaims, err := VerifyAccessToken(r.Context(), accessToken, userinfoProvider.AccessTokenVerifier())
if err != nil {
http.Error(w, "access token invalid", http.StatusUnauthorized)
return
}
tokenID = accessTokenClaims.GetTokenID()
} else {
tokenID, err = userinfoProvider.Crypto().Decrypt(accessToken)
if err != nil {
http.Error(w, "access token invalid", http.StatusUnauthorized)
return
}
}
info, err := userinfoProvider.Storage().GetUserinfoFromToken(r.Context(), tokenID, r.Header.Get("origin"))
if err != nil {