25 lines
		
	
	
		
			877 B
		
	
	
	
		
			Go
		
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			877 B
		
	
	
	
		
			Go
		
	
	
	
package middleware
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
 | 
						|
	"github.com/coreos/go-oidc"
 | 
						|
	sessionsapi "github.com/oauth2-proxy/oauth2-proxy/v7/pkg/apis/sessions"
 | 
						|
)
 | 
						|
 | 
						|
// TokenToSessionFunc takes a rawIDToken and an idToken and converts it into a
 | 
						|
// SessionState.
 | 
						|
type TokenToSessionFunc func(ctx context.Context, rawIDToken string, idToken *oidc.IDToken) (*sessionsapi.SessionState, error)
 | 
						|
 | 
						|
// TokenToSessionLoader pairs a token verifier with the correct converter function
 | 
						|
// to convert the ID Token to a SessionState.
 | 
						|
type TokenToSessionLoader struct {
 | 
						|
	// Verfier is used to verify that the ID Token was signed by the claimed issuer
 | 
						|
	// and that the token has not been tampered with.
 | 
						|
	Verifier *oidc.IDTokenVerifier
 | 
						|
 | 
						|
	// TokenToSession converts a rawIDToken and an idToken to a SessionState.
 | 
						|
	// (Optional) If not set a default basic implementation is used.
 | 
						|
	TokenToSession TokenToSessionFunc
 | 
						|
}
 |