Laravel Socialite 的 Telegram 认证提供者

4.1.2 2021-07-09 00:49 UTC

This package is auto-updated.

Last update: 2024-08-26 21:42:00 UTC


README

composer require socialiteproviders/telegram

安装与基本使用

请参阅基本安装指南,然后按照以下特定提供者的说明操作。

配置

首先,您必须通过联系 @BotFather (https://core.telegram.org/bots#6-botfather) 创建一个机器人

别忘了使用 /setdomain 设置您的网站 URL

然后,您需要将机器人的配置添加到 config/services.php。机器人用户名是必需的,client_id 必须为 null。提供者还将请求机器人写入用户的权限。

'telegram' => [
    'bot' => env('TELEGRAM_BOT_NAME'),  // The bot's username
    'client_id' => null,
    'client_secret' => env('TELEGRAM_TOKEN'),
    'redirect' => env('TELEGRAM_REDIRECT_URI'),
],

添加提供者事件监听器

Laravel 11+

在 Laravel 11 中,默认的 EventServiceProvider 提供者已被移除。取而代之的是,在您的 AppServiceProviderboot 方法中,使用 Event 门面上的 listen 方法添加监听器。

  • 注意:除非您使用自己的提供者覆盖了内置的 Socialite 提供者,否则您无需添加任何内容。
Event::listen(function (\SocialiteProviders\Manager\SocialiteWasCalled $event) {
    $event->extendSocialite('telegram', \SocialiteProviders\Telegram\Provider::class);
});
Laravel 10 或以下配置包的监听器以监听 `SocialiteWasCalled` 事件。

将事件添加到您的 app/Providers/EventServiceProvider 中的 listen[] 数组。有关详细说明,请参阅基本安装指南

protected $listen = [
    \SocialiteProviders\Manager\SocialiteWasCalled::class => [
        // ... other providers
        \SocialiteProviders\Telegram\TelegramExtendSocialite::class.'@handle',
    ],
];

使用方法

现在,您应该能够像通常使用 Socialite 一样使用该提供者(假设您已安装了门面)

return Socialite::driver('telegram')->redirect();

您可以使用此代码片段将登录按钮添加到页面上的任何位置

{!! Socialite::driver('telegram')->getButton() !!}

如果您想查看 Telegram 小部件配置页面: https://core.telegram.org/widgets/login

返回的用户字段

  • id
  • first_name
  • last_name
  • username
  • photo_url