xtodx / telegram-socialite
为 Laravel Socialite 提供的 Telegram 提供商
v2.0.5
2020-09-13 17:09 UTC
Requires
- illuminate/support: ~5.7.0|~5.8.0|^6.0|^7.0|^8.0
- laravel/socialite: ^5.0
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