> ## Documentation Index
> Fetch the complete documentation index at: https://veriqa.app/docs/llms.txt
> Use this file to discover all available pages before exploring further.

# Sign in with Telegram on a WordPress site

> Recipe: Telegram sign-in to WordPress with the stock openid-connect-generic plugin — the Veriqa server, the bot, a client with a secret, the plugin settings and the mandatory scope step.

You run a WordPress site and want visitors to sign in with Telegram: a QR code on the screen and a
confirmation in the messenger. The WordPress user is created on the first sign-in.

<Note>
  This recipe was verified on WordPress 6 with the `openid-connect-generic` 3.11.3 plugin and
  the Telegram channel. WordPress has not been tested with other channels.
</Note>

## What you need

* a Veriqa server at an address the site can reach; in production, public HTTPS with a valid
  certificate;
* a Telegram bot created with [@BotFather](https://t.me/BotFather);
* WordPress administrator rights.

## Steps

<Steps>
  <Step title="Deploy the Veriqa server">
    In Docker, follow the [self-hosted quickstart](/docs/quickstart/self-hosted); without Docker,
    [install it as an OS service](/docs/quickstart/os-service).
  </Step>

  <Step title="Enable Telegram">
    Set the bot token and username as described in the [Telegram](/docs/guides/channels#telegram) section
    of channel setup.
  </Step>

  <Step title="Declare a client with a secret">
    The WordPress client is confidential, with a `client_secret` and the `redirect_uri`
    `https://your-site/wp-admin/admin-ajax.php?action=openid-connect-authorize`. Where to declare it:
    [step 4 of the self-hosted quickstart](/docs/quickstart/self-hosted#4-declare-your-client).
  </Step>

  <Step title="Install and configure the plugin">
    The `openid-connect-generic` plugin and its settings are covered in sections 1 and 2 of the
    [WordPress](/docs/integrations/wordpress#1-the-plugin) page.
  </Step>

  <Step title="Drop scope from the code exchange">
    Without this step, sign-in fails at the code exchange. Use either an mu-plugin on the site or a
    quirk on the Veriqa side — [section 3](/docs/integrations/wordpress#3-drop-scope-from-the-code-exchange).
  </Step>
</Steps>

## How to check

Start a sign-in on the WordPress sign-in page, scan the QR code and confirm in Telegram. The plugin
log shows `login-success`, and WordPress has a new user.

The account is created **without an email**: Telegram does not provide one. If your site requires an
email, use the Email channel or ask for the address after the first sign-in — see
[What you get](/docs/integrations/wordpress#what-you-get).

## Next steps

* [Veriqa in a CMS](/docs/integrations/overview) — how WordPress differs from other engines;
* [Testing the integration locally](/docs/integrations/local-testing) — if you try the setup on your own
  machine first;
* [Preparing for production](/docs/guides/hardening) — before going live.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.