Skip to main content
Configuration class for setting up OAuth authentication providers. This class can be imported from the squirrels.auth or the squirrels module.

Constructor

Creates a ProviderConfigs object.
def __init__(
    self, *, client_id: str, client_secret: str, server_url: str, 
    server_metadata_path: str = "/.well-known/openid-configuration",
    client_kwargs: dict = {}, 
    get_user: Callable[[dict], RegisteredUser]
) -> None:

Example

from squirrels import auth, arguments as args

@auth.provider(
  name="google", label="Google", 
  icon="https://www.google.com/favicon.ico"
)
def google_auth_provider(sqrl: args.AuthProviderArgs) -> auth.ProviderConfigs:
    def get_user(user_info: dict) -> auth.RegisteredUser:
        # Convert OAuth user info to RegisteredUser
        pass
    
    provider_configs = auth.ProviderConfigs(
        client_id=sqrl.env_vars["GOOGLE_CLIENT_ID"],
        client_secret=sqrl.env_vars["GOOGLE_CLIENT_SECRET"],
        server_url="https://accounts.google.com",
        client_kwargs={"scope": "openid email profile"},
        get_user=get_sqrl_user
    )

    return provider_configs