socialiteproviders / telegram
Laravel Socialite 的 Telegram 认证提供者
4.1.2
2021-07-09 00:49 UTC
Requires
- php: ^7.2 || ^8.0
- socialiteproviders/manager: ~4.0
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
提供者已被移除。取而代之的是,在您的 AppServiceProvider
的 boot
方法中,使用 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