Skip to content

CP Overview ​

On the CP page you can modify a couple of things.

Default settings ​

Logging settings ​

NameDescription
LoggingWhat should be logged. Options: only errors, Everything, Nothing

SSO settings ​

NameDescription
MembergroupAssign new SSO users to a member group
Allow new SSO accountsAllow login with a new email. For this new email the SSO module will create a new EE account
Allow social login to merge with non social accountsAllow users to log in to existing ExpressionEngine email accounts that were created by EE itself, not by the SSO module. This way, a user can have an existing account and by logging in via the SSO module, they can access that existing account
Require a verified email to link an existing accountOnly merge a social login into an existing account when the provider verified the email address. Google, Apple, Facebook, GitHub, LinkedIn, Discord, X, PayPal, Yahoo, Twitch, Slack, GitLab, Keycloak and Okta report this (OpenID Connect when the provider sends email_verified), Microsoft and Amazon do not. Turning this off lets anyone who can set an unverified email at a provider log in to the account with that email. Default: yes. Available from v6.0.0
Send new password per mailSend the newly created password to the user only if the EE account was created. Existing accounts will not receive a new password
Send password when user disconnectWhen enabled, a password is sent to the user when they disconnect their account
Remember meKeep members logged in (1 year) after a social login, like the "remember me" checkbox of the login form. Default: yes. Available from v6.0.0
Sync profile pictureSync the profile picture on every login, so it gets updated on every login. Needs an upload directory named Avatars
Email collect formWhen the email is not given from the social site, you can use a template to collect the email. In the template you need at least this template code:
html
{exp:reinos_sso:email_collect_form}
    <input type="email" name="email"/>
    <input type="submit"/>
{/exp:reinos_sso:email_collect_form}

Select the template to use as the email collect form via the template dropdown.

Logs ​

The log page shows what the module logged, see the Logging setting. Available from v6.0.0:

  • Filter the logs on severity (error or notice), date and keyword, and choose the number of logs per page.
  • Select logs and delete them with the bulk action.
  • Export the filtered logs as CSV with Export logs.

Delete all logs deletes the logs of the current site.

Linked accounts ​

The linked accounts page lists which members are connected to which provider: the member, their email, the provider and the ID of the account at the provider. Available from v6.0.0:

  • Filter on a provider.
  • Search on the username, screen name or email of the member, or the provider ID.
  • Choose the number of accounts per page.

Member settings ​

NameDescription
Disable member registrationIn order to use only SSO as registration/login option, you can disable the default EE member registration in the member settings

Provider settings ​

The providers page shows all providers per group (social and consumer, business and identity, developers and communities, legacy) with their status:

StatusDescription
EnabledThe provider is enabled and all its settings are filled in
Missing settingsThe provider is enabled, but a required setting is empty. A login with it fails, the page shows a warning
OffThe provider is disabled

Filter the providers on status, search on the name, or enable and disable several providers at once with the checkboxes. Click a provider to edit its settings; the edit page shows the callback URL to register at the provider. A setting from $config['reinos_sso_providers'] in config.php counts as filled in. The settings are per site. Available from v6.0.0

Google ​

NameDescription
EnabledIs the provider enabled or not
IDYour API ID
SecretYour API Secret

To get the API keys follow the following steps:

  1. Go to https://code.google.com/apis/console/ and create a new project.
  2. Go to API Access under API Project. After that click on Create an OAuth 2.0 client ID to create a new application.
  3. A pop-up named "Create Client ID" will appear, fill out any required fields such as the application name and description.
  4. Click on Next.
  5. On the popup set Application type to Web application and switch to advanced settings by clicking on (more options).
  6. Provide this URL as the Callback URL for your application: Callback url showed on the overview page

Facebook ​

NameDescription
EnabledIs the provider enabled or not
IDYour API ID
SecretYour API Secret

To get the API keys follow the following steps:

  1. Go to https://developers.facebook.com/apps and create a new application by clicking "Create New App".
  2. Fill out any required fields such as the application name and description.
  3. Put your website domain in the Site Url field.

Twitter ​

NameDescription
EnabledIs the provider enabled or not
IDYour API ID
SecretYour API Secret

To get the API keys follow the following steps:

  1. Go to https://dev.twitter.com/apps and create a new application.
  2. Fill out any required fields such as the application name and description.
  3. Put your website domain in the Website field.
  4. Provide this URL as the Callback URL for your application: Callback url showed on the overview page

LinkedIn ​

This is the legacy "Sign In with LinkedIn" provider, LinkedIn no longer offers it to new apps. Use LinkedIn (OpenID Connect) for new apps.

NameDescription
EnabledIs the provider enabled or not
IDYour API ID
SecretYour API Secret

To get the API keys follow the following steps:

  1. Go to https://www.linkedin.com/secure/developer (or https://www.linkedin.com/secure/developer?newapp=) and create a new application.
  2. Fill out any required fields such as the application name and description.
  3. Copy the Callback URL from the SSO control panel into the OAuto 2.0 Authorized Redirect URL field.

LinkedIn (OpenID Connect) ​

Available from v6.0.0

NameDescription
EnabledIs the provider enabled or not
IDYour Client ID
SecretYour Client Secret

To get the API keys follow the following steps:

  1. Go to https://www.linkedin.com/developers/apps and create a new app.
  2. Add the product "Sign In with LinkedIn using OpenID Connect".
  3. Copy the Callback URL from the SSO control panel into the Authorized redirect URLs on the Auth tab.

Microsoft ​

Available from v6.0.0

NameDescription
EnabledIs the provider enabled or not
IDApplication (client) ID
SecretClient secret value
TenantWho can log in: common (personal and work/school accounts, default), organizations (work/school accounts), consumers (personal accounts), or the ID or domain of your tenant

To get the API keys follow the following steps:

  1. Go to the Azure portal → Microsoft Entra ID → App registrations and create a new registration.
  2. Choose the supported account types, this must match the Tenant setting.
  3. Add a Web redirect URI with the Callback URL from the SSO control panel.
  4. Create a client secret under Certificates & secrets.

Microsoft does not report if an email address is verified, so with Require a verified email to link an existing account a Microsoft login is not merged into an existing account by email. Members can connect Microsoft from their profile with the linked_providers tag.

GitHub ​

Available from v6.0.0

NameDescription
EnabledIs the provider enabled or not
IDClient ID
SecretClient secret

To get the API keys follow the following steps:

  1. Go to https://github.com/settings/developers and create a new OAuth App.
  2. Use the Callback URL from the SSO control panel as Authorization callback URL.

Discord ​

Available from v6.0.0

NameDescription
EnabledIs the provider enabled or not
IDClient ID
SecretClient Secret

To get the API keys follow the following steps:

  1. Go to https://discord.com/developers/applications and create a new application.
  2. Add the Callback URL from the SSO control panel as redirect under OAuth2.

X ​

Available from v6.0.0

The OAuth 2.0 successor of the Twitter provider.

NameDescription
EnabledIs the provider enabled or not
IDOAuth 2.0 Client ID
SecretOAuth 2.0 Client Secret

To get the API keys follow the following steps:

  1. Go to https://developer.x.com and create a project and app.
  2. Set up User authentication with OAuth 2.0, type Web App, and request the email address of the user.
  3. Use the Callback URL from the SSO control panel as Callback URI.

Apple ​

NameDescription
EnabledIs the provider enabled or not
IDIdentifier ID of the Services ID
Team IDTeam ID, can be found in the top-right of your screen
Key IDThe ID of your key
Key ContentThe actual content of your (private) key

To get the API keys follow the following steps:

  1. Sign in to https://developer.apple.com/account/resources
  2. Create a new Identifier of type APP IDs and enable "Sign In with Apple".
  3. Create an other Identifier of type Serivces IDs and enable "Sign In with Apple". Configure it so it will use the Primary App ID created in step 2. Also, add your domain and redirect/callback URL e.g. https://your-domain/sso_route_callback/auth/Apple This is your Identifier ID.
  4. Create a new Key with "Sign in with Apple" checked and your identifier attached via the config button. Download the key and safe it somewhere safe.

Amazon ​

Available from v6.0.0

NameDescription
EnabledIs the provider enabled or not
IDClient ID
SecretClient Secret

To get the API keys follow the following steps:

  1. Go to the Login with Amazon console and create a security profile.
  2. Under Web Settings, add your site as Allowed Origin and the Callback URL from the SSO control panel as Allowed Return URL.

Amazon does not report if an email address is verified, see Require a verified email to link an existing account.

PayPal ​

Available from v6.0.0

NameDescription
EnabledIs the provider enabled or not
IDClient ID
SecretSecret

To get the API keys follow the following steps:

  1. Go to https://developer.paypal.com/dashboard/applications/live and create an app (Live, the sandbox is not supported).
  2. Enable Log in with PayPal under the features of the app, request the email address and add the Callback URL from the SSO control panel as Return URL.

Yahoo ​

Available from v6.0.0

NameDescription
EnabledIs the provider enabled or not
IDClient ID (Consumer Key)
SecretClient Secret (Consumer Secret)

To get the API keys follow the following steps:

  1. Go to https://developer.yahoo.com/apps/ and create an app.
  2. Use the Callback URL from the SSO control panel as Redirect URI and select the OpenID Connect permissions Email and Profile.

Twitch ​

Available from v6.0.0

NameDescription
EnabledIs the provider enabled or not
IDClient ID
SecretClient Secret

To get the API keys follow the following steps:

  1. Go to https://dev.twitch.tv/console/apps and register an application, category Website Integration.
  2. Add the Callback URL from the SSO control panel as OAuth Redirect URL.

Slack ​

Available from v6.0.0

Uses Sign in with Slack (OpenID Connect).

NameDescription
EnabledIs the provider enabled or not
IDClient ID
SecretClient Secret

To get the API keys follow the following steps:

  1. Go to https://api.slack.com/apps and create a new app.
  2. Under OAuth & Permissions, add the Callback URL from the SSO control panel as Redirect URL and add the User Token Scopes openid, profile and email.
  3. Copy the Client ID and Client Secret from Basic Information.

GitLab ​

Available from v6.0.0

Works with gitlab.com and with a self-managed GitLab (OpenID Connect).

NameDescription
EnabledIs the provider enabled or not
IDApplication ID
SecretSecret
URLThe URL of a self-managed GitLab, e.g. https://gitlab.example.com. Empty = gitlab.com

To get the API keys follow the following steps:

  1. In GitLab go to your avatar → Edit profile → Applications (or Admin → Applications for an instance-wide app) and add a new application.
  2. Use the Callback URL from the SSO control panel as Redirect URI, keep Confidential on and select the scopes openid, profile and email.

Keycloak ​

Available from v6.0.0

NameDescription
EnabledIs the provider enabled or not
IDClient ID
SecretClient secret
URLThe URL of the Keycloak server, e.g. https://login.example.com (without /realms/...)
RealmThe name of the realm the client is in

To get the API keys follow the following steps:

  1. In the Keycloak admin console, select the realm and create a client of type OpenID Connect.
  2. Turn on Client authentication and the Standard flow.
  3. Add the Callback URL from the SSO control panel as Valid redirect URI.
  4. Copy the client secret from the Credentials tab.

Okta ​

Available from v6.0.0

NameDescription
EnabledIs the provider enabled or not
IDClient ID
SecretClient secret
DomainYour Okta domain without https://, e.g. example.okta.com
Authorization serverThe ID of a custom authorization server, e.g. default. Empty = the org authorization server

To get the API keys follow the following steps:

  1. In the Okta admin console go to Applications → Create App Integration, choose OIDC - OpenID Connect and Web Application.
  2. Add the Callback URL from the SSO control panel as Sign-in redirect URI.
  3. Assign the users or groups that may log in.

OpenID Connect ​

Available from v6.0.0

Log in with any provider that supports OpenID Connect, for example Auth0, Authentik, Zitadel or your own identity server. The endpoints are read from the discovery document {issuer}/.well-known/openid-configuration, PKCE is used when the provider supports it.

NameDescription
EnabledIs the provider enabled or not
TitleThe name of the provider in the login links, e.g. "Company login"
IDClient ID
SecretClient secret
IssuerThe issuer URL of the provider, e.g. https://example.eu.auth0.com. Must start with https://

To get the API keys follow the following steps:

  1. Create a web application (confidential client, authorization code flow) at your provider.
  2. Add the Callback URL from the SSO control panel as redirect URI and allow the scopes openid, profile and email.
  3. Copy the client ID, the client secret and the issuer URL.

The email address is only treated as verified when the provider sends the email_verified claim. For Microsoft Entra ID use the Microsoft provider, its issuer differs per tenant.

Credentials in config.php ​

Available from v6.0.0

Instead of the CP, you can set the provider settings in your config.php, for example from environment variables. This keeps the secrets out of the database. The values in config.php win over the CP settings, the provider still has to be enabled in the CP.

php
$config['reinos_sso_providers'] = [
    'Google' => [
        'keys' => ['id' => getenv('SSO_GOOGLE_ID'), 'secret' => getenv('SSO_GOOGLE_SECRET')],
    ],
    'MicrosoftGraph' => [
        'keys' => ['id' => getenv('SSO_MS_ID'), 'secret' => getenv('SSO_MS_SECRET')],
        'tenant' => 'organizations',
    ],
];

The provider names are Google, Facebook, Twitter, X, Apple, LinkedIn, LinkedInOpenID, MicrosoftGraph, GitHub, Discord, Instagram, Amazon, Paypal, Yahoo, TwitchTV, Slack, GitLab, Keycloak, OktaOIDC and OpenIDConnect.

Resources ​

Email template ​

To customise the email template, you can alter the template in the Template Manager -> System Templates -> Email and look for SSO.