Twitter OAuth 1.0a OmniAuth Provider (deprecated)

caution
This feature was deprecated in GitLab 16.3 and is planned for removal in 17.0. Use another supported OmniAuth provider instead. This change is a breaking change.
note
Twitter OAuth 2.0 support is not supported.

To enable the Twitter OmniAuth provider you must register your application with Twitter. Twitter generates a client ID and secret key for you to use.

Create a new Twitter application

  1. Sign in to Twitter Application Management.

  2. Select Create new app.

  3. Fill in the application details.
    • Name: This can be anything. Consider something like <Organization>'s GitLab, <Your Name>'s GitLab or something else descriptive.
    • Description: Create a description.
    • Website: The URL to your GitLab installation. For example, https://gitlab.example.com
    • Callback URL: https://gitlab.example.com/users/auth/twitter/callback
    • Developer Agreement: Select Yes, I agree.

    Twitter App Details

  4. Select Create your Twitter application.

Configure the application settings

  1. Select the Settings tab.

  2. Underneath the Callback URL, select the Allow this application to be used to Sign in with Twitter checkbox.

  3. Select Update settings to save the changes.

  4. Select the Keys and Access Tokens tab.

  5. Find your API key and API secret. Keep this tab open as you continue configuration.

    Twitter app

Configure your application on the GitLab server

  1. On your GitLab server, open the configuration file.

    For Linux package installations:

      sudo editor /etc/gitlab/gitlab.rb
    

    For self-compiled installations:

      cd /home/git/gitlab
    
      sudo -u git -H editor config/gitlab.yml
    
  2. Configure the common settings to add twitter as a single sign-on provider. This enables Just-In-Time account provisioning for users who do not have an existing GitLab account.

  3. Add the provider configuration.

    For Linux package installations:

      gitlab_rails['omniauth_providers'] = [
        {
          name: "twitter",
          # label: "Provider name", # optional label for login button, defaults to "Twitter"
          app_id: "<your_api_key>",
          app_secret: "<your_api_secret>"
        }
      ]
    

    For self-compiled installations:

    - { name: 'twitter',
        # label: 'Provider name', # optional label for login button, defaults to "Twitter"
        app_id: '<your_api_key>',
        app_secret: '<your_api_secret>' }
    
  4. Change <your_api_key> to the API key from the Twitter Keys and Access Tokens tab.

  5. Change <your_api_secret> to the API secret from the Twitter Keys and Access Tokens tab.

  6. Save the configuration file.

  7. For the changes to take effect:

On the sign-in page, find the Twitter option below the regular sign-in form. Select the option to begin the authentication process. Twitter asks you to sign in and authorize the GitLab application. After authorization, you are returned to GitLab and signed in.