max13/telegram-socialite

为 Laravel Socialite 提供的 Telegram 服务提供者

v2.0.2 2020-06-02 17:03 UTC

README

Style Status Latest Stable Version

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

问题

https://github.com/Max13/TelegramSocialite/issues