From 0de2cc1d240ee88463048ab7edb348e4ca2950b1 Mon Sep 17 00:00:00 2001 From: wener Date: Fri, 8 Oct 2021 00:15:38 +0800 Subject: [PATCH] fix: example client should track state, call cli.CodeFlow need context --- example/client/github/github.go | 2 +- example/internal/mock/storage.go | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/example/client/github/github.go b/example/client/github/github.go index f39c40b..35c7723 100644 --- a/example/client/github/github.go +++ b/example/client/github/github.go @@ -43,7 +43,7 @@ func main() { state := func() string { return uuid.New().String() } - token := cli.CodeFlow(relyingParty, callbackPath, port, state) + token := cli.CodeFlow(ctx, relyingParty, callbackPath, port, state) client := github.NewClient(relyingParty.OAuthConfig().Client(ctx, token.Token)) diff --git a/example/internal/mock/storage.go b/example/internal/mock/storage.go index 214ba54..775f757 100644 --- a/example/internal/mock/storage.go +++ b/example/internal/mock/storage.go @@ -36,6 +36,7 @@ type AuthRequest struct { Nonce string ClientID string CodeChallenge *oidc.CodeChallenge + State string } func (a *AuthRequest) GetACR() string { @@ -98,7 +99,7 @@ func (a *AuthRequest) GetScopes() []string { func (a *AuthRequest) SetCurrentScopes(scopes []string) {} func (a *AuthRequest) GetState() string { - return "" + return a.State } func (a *AuthRequest) GetSubject() string { @@ -120,7 +121,7 @@ func (s *AuthStorage) Health(ctx context.Context) error { } func (s *AuthStorage) CreateAuthRequest(_ context.Context, authReq *oidc.AuthRequest, _ string) (op.AuthRequest, error) { - a = &AuthRequest{ID: "id", ClientID: authReq.ClientID, ResponseType: authReq.ResponseType, Nonce: authReq.Nonce, RedirectURI: authReq.RedirectURI} + a = &AuthRequest{ID: "id", ClientID: authReq.ClientID, ResponseType: authReq.ResponseType, Nonce: authReq.Nonce, RedirectURI: authReq.RedirectURI, State: authReq.State} if authReq.CodeChallenge != "" { a.CodeChallenge = &oidc.CodeChallenge{ Challenge: authReq.CodeChallenge, @@ -212,7 +213,7 @@ func (s *AuthStorage) GetClientByClientID(_ context.Context, id string) (op.Clie accessTokenType = op.AccessTokenTypeJWT responseTypes = []oidc.ResponseType{oidc.ResponseTypeIDToken, oidc.ResponseTypeIDTokenOnly} } - return &ConfClient{ID: id, applicationType: appType, authMethod: authMethod, accessTokenType: accessTokenType, responseTypes: responseTypes, devMode: false}, nil + return &ConfClient{ID: id, applicationType: appType, authMethod: authMethod, accessTokenType: accessTokenType, responseTypes: responseTypes, devMode: false, grantTypes: []oidc.GrantType{oidc.GrantTypeCode}}, nil } func (s *AuthStorage) AuthorizeClientIDSecret(_ context.Context, id string, _ string) error {