Skip to Content
Flute CMS v1.0.0 — Получить ключ доступа
GuidesSocial Auth

Setting Up Social Authentication

What is social authentication?

Social authentication (OAuth authentication) allows users to log into your site using their existing accounts on popular services — Discord, Google, GitHub, and others. Instead of creating a new password, the user simply clicks “Sign in with…” and confirms their login through a service they already use.

Why is it needed?

  • Convenience for users — no need to remember yet another password.
  • Quick registration — sign in with a couple of clicks instead of filling out a form.
  • Security — user passwords are not stored on your site, and authentication goes through the secure servers of major companies.

How does it work? (in simple terms)

When a user clicks “Sign in with Discord” (or another service), the following happens:

  1. The user is redirected to the service’s website (e.g., Discord).
  2. The service asks: “Do you allow site X to access your email and name?”
  3. The user clicks “Allow.”
  4. The service redirects the user back to your site and passes a special code.
  5. Your site (Flute CMS) uses this code to retrieve the user’s data.

To make this process work, you need to register your application with each service and obtain two keys:

  • Client ID (application identifier) — a public key that tells the service: “This is site X.”
  • Client Secret (secret key) — a private key that confirms you are the actual owner of this application. Never share it with anyone!

To configure social authentication, you need admin.social or admin.boss permissions in Flute CMS.

Supported Services

Flute CMS supports authentication through the following services:

  • Discord — popular among gamers, ideal for gaming communities
  • Steam — for gaming communities (works differently, via OpenID)
  • Google — a universal option, most users have one
  • GitHub — for developer communities
  • VKontakte — popular in Russia and CIS countries
  • Yandex — popular in Russia and CIS countries

If the service you need is not on the list, you can suggest adding it in our Discord community .

General Requirements

Before you begin the setup, make sure that:

  • HTTPS is configured — the vast majority of services require your site to use the secure HTTPS protocol. Without an SSL certificate, authentication will not work (exception — localhost for testing with some services).
  • You have a real domain — most services do not accept IP addresses or localhost as a site address.
  • The domain is consistent everywhere — use the same domain variant (with www or without) both in the service settings and in Flute CMS.

Where to Find the Settings in Flute CMS

The social networks management page is located in the admin panel: in the sidebar menu, find the “Integrations” section and select “Social Networks”.

Path: Admin PanelSocial Networks (in the “Integrations” section of the sidebar menu)

Social networks page in the Flute CMS admin panel

On this page, you will see a table with all available services. Each service has:

  • Social network — service name
  • Timeout — connection timeout
  • Registration — whether registration through this service is allowed
  • Status — whether the service is enabled or disabled
  • Actions — buttons for configuration and management

To add a new service, click the ”+ Add” button in the top-right corner of the page.

To configure an already added service, click the action button (gear or settings icon) next to the desired service.

Social network settings window

Redirect URI (redirect addresses)

When registering an application with each service, you will need to specify a Redirect URI — addresses to which the service will redirect the user after authentication. Flute CMS uses two addresses for each service:

  • https://example.com/social/{Name} — for signing in to the site
  • https://example.com/profile/social/bind/{Name} — for linking a social network to an existing account

Where {Name} is the service name with a capital letter: Discord, Google, GitHub, Vkontakte, Yandex.

Redirect URIs must exactly match what you specified in the service settings — down to the character. A difference in even one character (e.g., an extra / at the end) will cause an error.

Setting Up Each Service

Setting Up Discord

Discord is one of the most popular services for authentication in gaming communities.

Create an application on Discord

  1. Open the Discord Developer Portal  and log into your Discord account.
  2. Click the “New Application” button in the top-right corner.
  3. Enter the application name (e.g., your site name) and click “Create”.

Get the Client ID and Client Secret

  1. In the left menu of the application, go to the “OAuth2” section.
  2. Copy the Client ID — it is displayed on the page right away.
  3. Click “Reset Secret” to generate a Client Secret, and copy it.

The Client Secret is shown only once! Copy and save it immediately. If you lose it, you will need to generate a new one via “Reset Secret”.

Add Redirect URIs

  1. On the same “OAuth2” page, find the “Redirects” block.
  2. Click “Add Redirect” and add two addresses:
    • https://example.com/social/Discord
    • https://example.com/profile/social/bind/Discord
  3. Click “Save Changes” at the bottom of the page.

If your site is accessible via both example.com and www.example.com, add Redirect URIs for both variants to avoid a redirect_uri_mismatch error.

Enter the data in Flute CMS

  1. Open Admin PanelSocial Networks (in the “Integrations” section of the sidebar menu).
  2. Find Discord in the list (or click ”+ Add” if it is not there).
  3. Enter the copied Client ID and Client Secret.
  4. Click “Save”.

Troubleshooting Common Issues

Error “redirect_uri_mismatch”

Cause: The Redirect URI specified in the service settings (Discord, Google, etc.) does not match what Flute CMS sends.

How to fix:

  • Verify that the URIs match character by character — including the protocol (https://), the presence or absence of www, and no trailing /.
  • If your site is accessible at multiple addresses (with and without www), add Redirect URIs for each variant.
  • Make sure the same domain is specified in both Flute CMS and the service settings.

Error “invalid_client”

Cause: Incorrect Client ID or Client Secret.

How to fix:

  • Go back to the service’s developer panel and re-copy the keys.
  • Make sure you did not accidentally copy extra spaces.
  • If the Client Secret was reset, the old one stops working — use the new one.

Authentication doesn’t work, the page just reloads

Cause: Most likely an issue with HTTPS or incorrect redirect URIs.

How to fix:

  • Make sure your site is running on HTTPS with a valid SSL certificate.
  • Verify that the redirect URIs in the service are specified with https://, not http://.

Steam authentication doesn’t work

Cause: The Steam API Key is missing or incorrectly entered.

How to fix:

  • Open Admin PanelGeneral Settings and check the “STEAM API Key” field.
  • Make sure the API key is valid on the Steam Web API Key  page.

Authentication doesn’t work on localhost

Cause: Most services do not accept localhost as an address for OAuth.

How to fix:

  • Use a real domain for testing.
  • As a temporary solution, set up a local domain through the hosts file on your computer.
  • Google allows using localhost for testing — this is an exception.

If authentication still doesn’t work after completing all the steps, reach out for help in our Discord community . Attach screenshots of the settings and a description of the error — you will definitely get help.