xtodx/telegram-socialite

为 Laravel Socialite 提供的 Telegram 提供商

v2.0.5 2020-09-13 17:09 UTC

This package is auto-updated.

Last update: 2024-09-14 02:46:44 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