max13 / telegram-socialite
为 Laravel Socialite 提供的 Telegram 服务提供者
Requires
- illuminate/support: ~5.7.0|~5.8.0|^6.0|^7.0
- laravel/socialite: ^4.0
This package is auto-updated.
Last update: 2024-09-19 23:10:38 UTC
README
TelegramSocialite
为 Laravel Socialite 提供的 Telegram 服务提供者
安装
composer require max13/telegram-socialite
配置
首先,您必须通过联系 @BotFather (https://core.telegram.org/bots#6-botfather) 来创建一个机器人
别忘了使用
/setdomain
设置您的网站 URL
然后,根据 Laravel Socialite 的要求,您需要将机器人的配置添加到 config/services.php
。机器人用户名是必需的,client_id
必须为 null
。提供商还会要求对机器人写入用户的权限。
'telegram' => [ 'client_id' => null, 'client_secret' => env('TELEGRAM_TOKEN'), 'redirect' => '/login/telegram/callback', ]
使用方法
现在,Telegram 在技术上使用 OAuth
,但不是通常的工作流程。
首先,您必须在页面上添加一段 JavaScript 代码,任何您想要的位置(在 <head>
或页面底部),如下所示
{!! Socialite::driver('telegram')->getScript() !!}
您必须在点击登录按钮时调用 _TWidgetLogin.auth()
,这将打开一个弹出窗口,显示 Telegram OAuth 访问请求。由于浏览器的安全限制,您不能自动调用此函数,它必须作为用户操作的结果来调用。
如果用户 接受 访问请求,浏览器将重定向到您的 services.telegram.redirect
配置密钥,您将通过经典的 Socialite
方式访问已登录用户的数据
Socialite::driver('telegram')->user();
如果用户 拒绝,将抛出一个 InvalidArgumentException
异常。
使用 Socialite::driver('telegram')->redirect()
将以 404
错误终止连接。
如果您想查看 Telegram 小部件配置页面:https://core.telegram.org/widgets/login