Step-by-step instructions for configuring each OAuth provider in Authon. For every provider, you will obtain a Client ID and a Client Secret, then paste them into the Providers page of your Authon dashboard.
In the left menu, navigate to APIs & Services → OAuth consent screen. Choose External and fill in the required fields (App name, support email, developer contact).
3
Navigate to APIs & Services → Credentials → Create Credentials → OAuth 2.0 Client ID. Select Web application.
4
Under Authorized redirect URIs, add the Authon callback URL:
Go to Keys → Register a New Key. Enable Sign In with Apple, click Configure, and select your App ID. Download the .p8 private key file and note the Key ID.
5
Apple requires you to generate a short-lived (6-month max) JWT as the Client Secret. Use the script below. The resulting JWT is your Client Secret.
generate_apple_secret.py
import jwt, time
TEAM_ID = "YOUR_TEAM_ID"# 10-char Team ID from Apple Developer
KEY_ID = "YOUR_KEY_ID"# Key ID from the downloaded key
CLIENT_ID = "com.yourapp.web"# Your Services ID Bundle ID
KEY_FILE = "AuthKey_XXXXXX.p8"# Path to the .p8 private keywith open(KEY_FILE, "r") as f:
private_key = f.read()
payload = {
"iss": TEAM_ID,
"iat": int(time.time()),
"exp": int(time.time()) + 86400 * 180, # 180 days"aud": "https://appleid.apple.com",
"sub": CLIENT_ID,
}
client_secret = jwt.encode(payload, private_key, algorithm="ES256", headers={"kid": KEY_ID})
print(client_secret)
Or use this tool to generate the JWT directly in your browser — nothing is sent to any server:
Apple Client Secret Generatorruns in your browser — nothing is sent to any server
Note: Apple client secrets expire after a maximum of 6 months. You will need to regenerate and update the secret in your Authon dashboard before it expires.
Field mapping:
Client ID←Services ID Bundle ID (e.g. com.yourapp.web)
Client Secret←Generated JWT string (from the script above)
Copy the Client ID and Client Secret from the Keys and tokens tab.
Note: Twitter / X OAuth 2.0 requires a Developer Account with Elevated access for the email scope. Without it, only users.read and tweet.read are available.
Go to App Keys. Copy the REST API Key — this is your Client ID.
4
To enable a Client Secret, go to Kakao Login → Security → enable Client Secret and copy the generated secret value.
Note: The Kakao Client Secret is optional but strongly recommended for production. Without it, the Client ID alone is used for token exchange, which is less secure.
5
Under Kakao Login → Consent items, activate Nickname, Profile picture, and Kakao account (email).
Field mapping:
Client ID←REST API Key
Client Secret←Client Secret code (optional but recommended)
After creating the integration, go to its settings page and click Show next to the Client Secret to reveal it. Copy the OAuth client ID and OAuth client secret.
Note: Notion OAuth only grants access to pages and databases the user explicitly selects during the authorization flow. The user.email capability must be enabled in the integration settings to retrieve the user's email address.