|
|
|
|
@ -490,6 +490,7 @@ func (s *Server) finalizeLogin(identity connector.Identity, authReq storage.Auth
|
|
|
|
|
updater := func(a storage.AuthRequest) (storage.AuthRequest, error) { |
|
|
|
|
a.LoggedIn = true |
|
|
|
|
a.Claims = claims |
|
|
|
|
a.ConnectorData = identity.ConnectorData |
|
|
|
|
return a, nil |
|
|
|
|
} |
|
|
|
|
if err := s.storage.UpdateAuthRequest(authReq.ID, updater); err != nil { |
|
|
|
|
@ -621,14 +622,15 @@ func (s *Server) sendCodeResponse(w http.ResponseWriter, r *http.Request, authRe
|
|
|
|
|
switch responseType { |
|
|
|
|
case responseTypeCode: |
|
|
|
|
code = storage.AuthCode{ |
|
|
|
|
ID: storage.NewID(), |
|
|
|
|
ClientID: authReq.ClientID, |
|
|
|
|
ConnectorID: authReq.ConnectorID, |
|
|
|
|
Nonce: authReq.Nonce, |
|
|
|
|
Scopes: authReq.Scopes, |
|
|
|
|
Claims: authReq.Claims, |
|
|
|
|
Expiry: s.now().Add(time.Minute * 30), |
|
|
|
|
RedirectURI: authReq.RedirectURI, |
|
|
|
|
ID: storage.NewID(), |
|
|
|
|
ClientID: authReq.ClientID, |
|
|
|
|
ConnectorID: authReq.ConnectorID, |
|
|
|
|
Nonce: authReq.Nonce, |
|
|
|
|
Scopes: authReq.Scopes, |
|
|
|
|
Claims: authReq.Claims, |
|
|
|
|
Expiry: s.now().Add(time.Minute * 30), |
|
|
|
|
RedirectURI: authReq.RedirectURI, |
|
|
|
|
ConnectorData: authReq.ConnectorData, |
|
|
|
|
} |
|
|
|
|
if err := s.storage.CreateAuthCode(code); err != nil { |
|
|
|
|
s.logger.Errorf("Failed to create auth code: %v", err) |
|
|
|
|
@ -824,15 +826,16 @@ func (s *Server) handleAuthCode(w http.ResponseWriter, r *http.Request, client s
|
|
|
|
|
var refreshToken string |
|
|
|
|
if reqRefresh { |
|
|
|
|
refresh := storage.RefreshToken{ |
|
|
|
|
ID: storage.NewID(), |
|
|
|
|
Token: storage.NewID(), |
|
|
|
|
ClientID: authCode.ClientID, |
|
|
|
|
ConnectorID: authCode.ConnectorID, |
|
|
|
|
Scopes: authCode.Scopes, |
|
|
|
|
Claims: authCode.Claims, |
|
|
|
|
Nonce: authCode.Nonce, |
|
|
|
|
CreatedAt: s.now(), |
|
|
|
|
LastUsed: s.now(), |
|
|
|
|
ID: storage.NewID(), |
|
|
|
|
Token: storage.NewID(), |
|
|
|
|
ClientID: authCode.ClientID, |
|
|
|
|
ConnectorID: authCode.ConnectorID, |
|
|
|
|
Scopes: authCode.Scopes, |
|
|
|
|
Claims: authCode.Claims, |
|
|
|
|
Nonce: authCode.Nonce, |
|
|
|
|
ConnectorData: authCode.ConnectorData, |
|
|
|
|
CreatedAt: s.now(), |
|
|
|
|
LastUsed: s.now(), |
|
|
|
|
} |
|
|
|
|
token := &internal.RefreshToken{ |
|
|
|
|
RefreshId: refresh.ID, |
|
|
|
|
|