squirrels.auth or the squirrels module.
Constructor
Creates aProviderConfigs object.
def __init__(
self, *, client_id: str, client_secret: str, server_url: str,
server_metadata_path: str = "/.well-known/oauth-authorization-server",
client_kwargs: dict = {},
get_user: Callable[[dict], RegisteredUser]
) -> None:
Hide arguments
Hide arguments
str
required
OAuth client ID
str
required
OAuth client secret
str
required
URL of the OAuth server
str
default:"/.well-known/oauth-authorization-server"
Path to the OAuth authorization server metadata (used for discovery)
dict
default:"{}"
Additional keyword arguments for the OAuth client
Callable[[dict], RegisteredUser]
required
Function to convert OAuth user info to RegisteredUser
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