BotAuth-使用机器人登录和注册



BotAuth-一个软件包,可让您使用机器人Vkontakte,FaceBook和Telegram登录。

BotAuth的主要目标是简化通过社交网络访问网站/ PWA的访问者。

虽然社交。 网络无法从本地移动应用程序向网站提供反馈,开发人员必须将用户发送到浏览器,在浏览器中,他们再次需要输入用户名和密码。

使用漫游器,您可以从本机应用程序获得反馈(回调),从而不必强制输入社交用户名和密码。 浏览器中的网络。

演示-https: //laravel.zetrider.ru/botauth
GitHub- https://github.com/zetrider/BotAuth

形式的链接:

https://vk.me/ https://t.me/ https://m.me/ 

打开移动应用程序以开始与机器人进行对话。 访客无需在浏览器中重新输入用户名和密码。

您可以连接机器人:

  • Vkontakte
  • 电报
  • 脸书
  • 您自己的提供者(以下示例)

安装方式
  1. 作曲家需要Zetrider / botauth
  2. 将包连接到config / app.php
    提供者
     ZetRider\BotAuth\BotAuthServiceProvider::class, 

    外立面
     'BotAuth' => ZetRider\BotAuth\Facades\BotAuth::class, 

  3. 复制配置。 档案
     php artisan vendor:publish --tag=botauth-config 

    如果有必要
     php artisan vendor:publish --tag=botauth-views 

     php artisan vendor:publish --tag=botauth-migrations 

  4. 表示必要的社交。 网络链接参数config / botauth.php中的链接。
  5. 用漫游器密钥填充ENV文件
     BOTAUTH_VKONTAKTE_API_SECRET BOTAUTH_VKONTAKTE_API_TOKEN BOTAUTH_VKONTAKTE_API_CONFIRM BOTAUTH_TELEGRAM_API_TOKEN BOTAUTH_TELEGRAM_PROXY BOTAUTH_FACEBOOK_API_SECRET BOTAUTH_FACEBOOK_API_TOKEN BOTAUTH_FACEBOOK_API_CONFIRM 

  6. 运行迁移
     php artisan migrate 

  7. 在Middleware VerifyCsrfToken中为回调添加地址异常,默认为botauth / callback / *'
     protected $except = [ 'botauth/callback/*' // Except callback Csrf middleware ]; 

  8. 对于您的用户模型,添加一个特征:
     use ZetRider\BotAuth\Traits\BotAuthUserTrait; 

    这将与来自社交网络的用户登录建立联系。 网路


连接机器人:

Vkontakte
  1. 打开您的社区设置或创建新的vk.com/groups?w=groups_create
  2. 在社区设置中,打开“设置”部分-“使用API​​”
  3. 创建一个密码,选择“允许应用程序访问社区消息”,写下密码,必须在.env中指定。BOTAUTH_VKONTAKTE_API_TOKEN
  4. 在同一页面上,选择Callback API,选择“ API Version” 5.95 ,在“ Address”字段中指定站点的回调地址,默认示例
     https://DOMAIN/botauth/callback/vkontakte 
  5. 在下面指定服务器应返回到.env的行。BOTAUTH_VKONTAKTE_API_CONFIRM
  6. 在“秘密密钥”字段中,输入任何秘密密钥,在.env中指定BOTAUTH_VKONTAKTE_API_SECRET
  7. 填写.env中的所有键后,单击“确认”按钮
  8. 在同一页面上,打开“事件类型”选项卡,选择“收件箱”
  9. 打开社区设置,在“消息”项下,启用“社区消息”
  10. 打开社区设置,在“消息”-“机器人的设置”项目中,打开“启动功能”

该机器人已准备就绪。

直接链接到与机器人对话的示例
 https://vk.me/zetcode 


电报
  1. 通过@BotFather创建您的机器人
  2. 记住密钥,在.env中指定BOTAUTH_TELEGRAM_API_TOKEN
  3. 通过添加网络挂钩
     https://api.telegram.org/botYOUR_TOKEN/setWebhook?url=https://DOMAIN/botauth/callback/telegram 

    将您的令牌替换为YOUR_TOKEN,将您的域替换为DOMAIN
  4. 如有必要,请在.env BOTAUTH_TELEGRAM_PROXY中指定代理,例如socks5h://127.0.0.1:1080

该机器人已准备就绪。

直接链接到与机器人对话的示例
 https://t.me/BotAuthBot 


脸书
  1. 您必须已创建一个页面,否则请添加www.facebook.com/pages/creation/?ref_type=universal_creation_hub
  2. 添加新的developers.facebook.com/apps应用
  3. 在应用程序设置中,选择“基本”,将“应用程序机密”复制到.env BOTAUTH_FACEBOOK_API_SECRET
  4. 在应用程序设置中,您需要添加产品“ Messenger”
  5. 在“ Messenger”产品设置中,创建访问令牌,并在.env中指定它。BOTAUTH_FACEBOOK_API_TOKEN
  6. 在Messenger产品的设置中,创建一个Web挂钩,在回调URL中指定
     https://DOMAIN/botauth/callback/facebook 
    用您的域替换DOMAIN
  7. 在“确认标记”字段中,指定任何文本,然后将其保存在.env中。BOTAUTH_FACEBOOK_API_CONFIRM
  8. 在“订阅字段”选项中,选择“消息”
  9. 点击确认
  10. 在Web挂钩设置中确认服务器后,选择页面,单击“订阅”
  11. 在“检查Messenger应用程序”窗口中,在“ pages_messaging”旁边,单击“添加到请求”

该机器人已经可以工作了,但仅对管理员可用。

确认申请后,所有访客都可以使用。 提交申请以进行审核。

直接链接到与机器人对话的示例
 https://m.me/zetridercode 


重要说明:

  1. 该网站应在https上运行
  2. Facebook机器人返回的PSID与公共用户ID不匹配。
  3. 默认情况下,bot控制器与\ App \ User模型一起使用。 如果您的情况不同,只需根据存储库中的示例创建控制器和模型。 模型控制器

如何添加您的提供者:

创建继承抽象类的类

 ZetRider\BotAuth\AbstractProvider 

示例示例/ ExampleProvider.php

将提供程序添加到服务中,例如,引导方法中的AppServiceProvider

 // Register example proider BotAuth::extend('example', function() { return new \Path\To\Your\Class\ExampleProvider(); }); 

提供者将在以下位置的回调中处理请求

 https://.../botauth/callback/example 

大事记

机器人成功处理新消息的事件

 // Catch bot callback \Event::listen(\ZetRider\BotAuth\Events\MessageNewEvent::class, function($event) { $provider = $event->provider; // ZetRider\BotAuth\AbstractProvider $slug = $provider->getProviderSlug(); $data = $provider->getCallbackResponse(); $user = $provider->getUser(); $text = $provider->getText(); // You can send a message // $provider->sendMessage(__('Back to web site')); }); 

Source: https://habr.com/ru/post/zh-CN455104/


All Articles