BotAuth: inicio de sesión y registro con bots



BotAuth: un paquete que le permite iniciar sesión con el bot Vkontakte, FaceBook, Telegram.

El objetivo principal de BotAuth es simplificar a los visitantes de los sitios web / inicio de sesión PWA a través de las redes sociales.

Mientras social. Las redes no proporcionan comentarios de las aplicaciones móviles nativas a un sitio web, los desarrolladores tienen que enviar al usuario a un navegador, donde nuevamente deben ingresar un nombre de usuario y contraseña.

Usando bots, puede obtener comentarios (devolución de llamada) de la aplicación nativa, por lo que no obliga a ingresar el nombre de usuario y la contraseña de la red social. red en el navegador.

Demostración: https://laravel.zetrider.ru/botauth
GitHub - https://github.com/zetrider/BotAuth

Enlaces del formulario:

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

Abra una aplicación móvil para iniciar un diálogo con el bot. El visitante no tendrá que volver a ingresar el nombre de usuario y la contraseña en el navegador.

Puedes conectar bots:

  • Vkontakte
  • Telegrama
  • Facebook
  • Su propio proveedor (ejemplo a continuación)

Instalación
  1. compositor requiere zetrider / botauth
  2. Conecte el paquete en config / app.php
    Proveedor
     ZetRider\BotAuth\BotAuthServiceProvider::class, 

    Fachada
     'BotAuth' => ZetRider\BotAuth\Facades\BotAuth::class, 

  3. Copia la configuración. archivo
     php artisan vendor:publish --tag=botauth-config 

    si es necesario
     php artisan vendor:publish --tag=botauth-views 

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

  4. Indicar para lo social necesario. enlace de redes en config / botauth.php en el parámetro de enlace.
  5. Rellene el archivo ENV con las teclas bot
     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. Ejecutar migraciones
     php artisan migrate 

  7. En Middleware VerifyCsrfToken agrega una excepción de dirección para devolución de llamada, el valor predeterminado es botauth / callback / * '
     protected $except = [ 'botauth/callback/*' // Except callback Csrf middleware ]; 

  8. Para su modelo de usuario, agregue un rasgo:
     use ZetRider\BotAuth\Traits\BotAuthUserTrait; 

    lo que agregará una relación con los inicios de sesión de los usuarios de la red social. redes


Conexión de bots:

Vkontakte
  1. Abra la configuración de su comunidad o cree un nuevo vk.com/groups?w=groups_create
  2. En la configuración de la comunidad, abra la sección "Configuración" - "Trabajar con la API"
  3. Cree una contraseña, seleccione "Permitir que la aplicación acceda a los mensajes de la comunidad", escriba la clave, debe especificarse en .env BOTAUTH_VKONTAKTE_API_TOKEN
  4. En la misma página, seleccione la API de devolución de llamada, seleccione "Versión de API" 5.95 , especifique la dirección de devolución de llamada de su sitio en el campo "Dirección", ejemplo predeterminado
     https://DOMAIN/botauth/callback/vkontakte 
  5. A continuación, especifique la línea a la que el servidor debe regresar .env BOTAUTH_VKONTAKTE_API_CONFIRM
  6. En el campo "Clave secreta", ingrese cualquier clave secreta, especifique en .env BOTAUTH_VKONTAKTE_API_SECRET
  7. Después de completar todas las claves en .env, haga clic en el botón "Confirmar"
  8. En la misma página, abra la pestaña "Tipos de eventos", seleccione "Bandeja de entrada"
  9. Abra la configuración de la comunidad, el elemento "Mensajes", habilite los "mensajes de la comunidad"
  10. Abra la configuración de la comunidad, el elemento "Mensajes" - "Configuración del bot", active "Funciones del bot"

El bot está listo para funcionar.

Un ejemplo de un enlace directo a un diálogo con un bot
 https://vk.me/zetcode 


Telegrama
  1. Crea tu bot a través de @BotFather
  2. Recuerde la clave, especifique en .env BOTAUTH_TELEGRAM_API_TOKEN
  3. Agregar un enlace web a través de
     https://api.telegram.org/botYOUR_TOKEN/setWebhook?url=https://DOMAIN/botauth/callback/telegram 

    reemplace YOUR_TOKEN con su token, DOMAIN con su dominio
  4. Si es necesario, especifique el proxy en .env BOTAUTH_TELEGRAM_PROXY , por ejemplo calcetines5h: //127.0.0.1: 1080

El bot está listo para funcionar.

Un ejemplo de un enlace directo a un diálogo con un bot
 https://t.me/BotAuthBot 


Facebook
  1. Debe haber creado una página; si no es así, agregue www.facebook.com/pages/creation/?ref_type=universal_creation_hub
  2. Agregue la nueva aplicación developers.facebook.com/apps
  3. En la configuración de la aplicación, seleccione "Básico", copie el "Secreto de la aplicación" a .env BOTAUTH_FACEBOOK_API_SECRET
  4. En la configuración de la aplicación, debe agregar el producto "Messenger"
  5. En la configuración del producto "Messenger", cree un token de acceso, especifíquelo en .env BOTAUTH_FACEBOOK_API_TOKEN
  6. En la configuración del producto Messenger, cree un enlace web, especifique en la URL de devolución de llamada
     https://DOMAIN/botauth/callback/facebook 
    reemplaza DOMAIN con tu dominio
  7. En el campo "Confirmar marcador", especifique cualquier texto, guárdelo en .env BOTAUTH_FACEBOOK_API_CONFIRM
  8. En las opciones de "Campos de suscripción", seleccione "mensajes"
  9. Haga clic en confirmar
  10. Después de confirmar el servidor en la configuración de enlace web, seleccione la página, haga clic en "Suscribir"
  11. En la ventana "Comprobar aplicación de Messenger", junto a "pages_messaging", haga clic en "Agregar a solicitud"

El bot ya está listo para trabajar, pero solo está disponible para los administradores.

Después de confirmar la aplicación, estará disponible para todos los visitantes. Presentar la solicitud para moderación.

Un ejemplo de un enlace directo a un diálogo con un bot
 https://m.me/zetridercode 


Importante:

  1. El sitio debería funcionar en https
  2. El bot de Facebook devuelve un PSID que no coincide con el ID de usuario público.
  3. Por defecto, el controlador bot funciona con el modelo \ App \ User. Si tiene un caso diferente, simplemente cree su controlador y modelo basado en ejemplos del repositorio. Modelo , controlador

Cómo agregar su proveedor:

Crea tu clase que hereda una clase abstracta

 ZetRider\BotAuth\AbstractProvider 

Ejemplo ejemplo / ExampleProvider.php

Agregue un proveedor al servicio, por ejemplo, AppServiceProvider en el método de arranque

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

El proveedor procesará las solicitudes en una devolución de llamada en

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

Eventos

Evento sobre el procesamiento exitoso de un nuevo mensaje del bot

 // 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/455104/


All Articles