Skip to main content

Slack

Follow these steps to add Slack as a social sign-in provider to your project using the Ory Console:

  1. Sign in to Ory Console and select Social Sign-in.

  2. Click the switch next to the Slack logo to start the configuration.

  3. Copy the Redirect URI and save it for later use.

  4. Create a Slack OAuth Application.

  5. After creating the new application, navigate to the OAuth & Permissions section of the registered application in Slack and add the saved Redirect URI from Ory to the Redirect URLs of the registered application.

  6. Navigate to the Basic Information section of the registered application in Slack and copy the following data to the corresponding fields in the form in the Ory Console:

    • Client ID
    • Client Secret
  7. In the Scopes field of the form in the Ory Console, add the following scopes:

    • identity.basic
    • identity.email
  8. In the Data Mapping field of the form in the Ory Console, add the following Jsonnet code snippet, which maps the desired claims to the Ory Identity schema:

    local claims = {
    email_verified: true,
    } + std.extVar('claims');

    {
    identity: {
    traits: {
    // Allowing unverified email addresses enables account
    // enumeration attacks, if the value is used for
    // verification or as a password login identifier.
    //
    // It's assumed that Slack requires an email to be verified to be accessible
    // via OAuth (because they don't provide a email_verified field).
    email: claims.email,
    },
    },
    }
    danger

    Don't save secrets such as API keys, credentials, or personal data directly in Jsonnet code snippets. Jsonnet code snippets used for data mapping aren't stored in an encrypted format in Ory Network.

  9. Click Save Configuration.

Troubleshooting

When you add a social sign-in provider, you can encounter common problems such as:

  • Redirect URI mismatch
  • Redirect loops during registration
  • Domain verification issues

To troubleshoot those issues, read Social sign-in troubleshooting.