BotAuth - login dan registrasi menggunakan bot



BotAuth - paket yang memungkinkan Anda untuk masuk menggunakan bot Vkontakte, FaceBook, Telegram.

Tujuan utama BotAuth adalah untuk menyederhanakan pengunjung ke situs Web / login PWA melalui jejaring sosial.

Sementara sosial. Jaringan tidak memberikan umpan balik dari aplikasi seluler asli ke situs web, pengembang harus mengirim pengguna ke browser, di mana mereka perlu memasukkan login dan kata sandi mereka lagi.

Menggunakan bot, Anda bisa mendapatkan umpan balik (panggilan balik) dari aplikasi asli, sehingga tidak memaksa untuk memasukkan nama pengguna dan kata sandi sosial. jaringan di browser.

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

Tautan formulir:

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

buka aplikasi seluler untuk memulai dialog dengan bot. Pengunjung tidak perlu memasukkan kembali nama pengguna dan kata sandi di browser.

Anda dapat menghubungkan bot:

  • Vkontakte
  • Telegram
  • Facebook
  • Penyedia Anda sendiri (contoh di bawah)

Instalasi
  1. komposer membutuhkan zetrider / botauth
  2. Hubungkan paket di config / app.php
    Penyedia
     ZetRider\BotAuth\BotAuthServiceProvider::class, 

    FaΓ§ade
     'BotAuth' => ZetRider\BotAuth\Facades\BotAuth::class, 

  3. Salin konfigurasi. file
     php artisan vendor:publish --tag=botauth-config 

    jika perlu
     php artisan vendor:publish --tag=botauth-views 

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

  4. Tunjukkan untuk sosial yang diperlukan. tautan jaringan di config / botauth.php di parameter tautan.
  5. Isi file ENV dengan kunci 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. Jalankan migrasi
     php artisan migrate 

  7. Dalam Middleware VerifyCsrfToken menambahkan pengecualian alamat untuk panggilan balik, standarnya adalah botauth / callback / * '
     protected $except = [ 'botauth/callback/*' // Except callback Csrf middleware ]; 

  8. Untuk model Pengguna Anda, tambahkan sifat:
     use ZetRider\BotAuth\Traits\BotAuthUserTrait; 

    yang akan menambah hubungan dengan login pengguna dari sosial. jaringan


Menghubungkan bot:

Vkontakte
  1. Buka pengaturan komunitas Anda atau buat vk.com/groups?w=groups_create baru
  2. Di pengaturan komunitas, buka bagian "Pengaturan" - "Bekerja dengan API"
  3. Buat passkey, pilih "Izinkan aplikasi untuk mengakses pesan komunitas", tulis kunci, itu harus ditentukan dalam .env BOTAUTH_VKONTAKTE_API_TOKEN
  4. Pada halaman yang sama, pilih API Callback, pilih "Versi API" 5.95 , tentukan alamat callback situs Anda di bidang "Address", contoh default
     https://DOMAIN/botauth/callback/vkontakte 
  5. Di bawah ini menunjukkan baris yang harus dikembalikan ke server .env BOTAUTH_VKONTAKTE_API_CONFIRM
  6. Di bidang "Kunci rahasia", masukkan kunci rahasia apa saja, tentukan di .env BOTAUTH_VKONTAKTE_API_SECRET
  7. Setelah mengisi semua kunci di .env, klik tombol "Konfirmasi"
  8. Pada halaman yang sama, buka tab "Jenis Acara", pilih "Kotak Masuk"
  9. Buka pengaturan komunitas, item "Pesan", aktifkan "pesan komunitas"
  10. Buka pengaturan komunitas, item "Pesan" - "Pengaturan untuk bot", nyalakan "Fitur bot"

Bot siap untuk pergi.

Contoh tautan langsung ke dialog dengan bot
 https://vk.me/zetcode 


Telegram
  1. Buat bot Anda melalui @BotFather
  2. Ingat kuncinya, tentukan dalam .env BOTAUTH_TELEGRAM_API_TOKEN
  3. Tambahkan kait web via
     https://api.telegram.org/botYOUR_TOKEN/setWebhook?url=https://DOMAIN/botauth/callback/telegram 

    ganti YOUR_TOKEN dengan token Anda, DOMAIN dengan domain Anda
  4. Jika perlu, tentukan proxy di .env BOTAUTH_TELEGRAM_PROXY , misalnya socks5h: //127.0.0.1: 1080

Bot siap untuk pergi.

Contoh tautan langsung ke dialog dengan bot
 https://t.me/BotAuthBot 


Facebook
  1. Anda harus membuat halaman, jika tidak, tambahkan www.facebook.com/pages/creation/?ref_type=universal_creation_hub
  2. Tambahkan aplikasi developers.facebook.com/apps baru
  3. Di pengaturan aplikasi, pilih "Dasar", salin "Rahasia Aplikasi" ke .env BOTAUTH_FACEBOOK_API_SECRET
  4. Dalam pengaturan aplikasi Anda perlu menambahkan produk "Messenger"
  5. Di pengaturan produk "Messenger", buat token akses, tentukan di .env BOTAUTH_FACEBOOK_API_TOKEN
  6. Dalam pengaturan produk Messenger, buat kait web, tentukan di URL panggilan balik
     https://DOMAIN/botauth/callback/facebook 
    ganti DOMAIN dengan domain Anda
  7. Di bidang "Konfirmasi penanda", tentukan teks apa pun, simpan di .env BOTAUTH_FACEBOOK_API_CONFIRM
  8. Dalam opsi "Bidang Langganan", pilih "pesan"
  9. Klik Konfirmasikan
  10. Setelah mengonfirmasi server dalam pengaturan kait web, pilih halaman, klik "Berlangganan"
  11. Di jendela "Periksa Aplikasi Messenger", di sebelah "pages_messaging", klik "Tambahkan ke Permintaan"

Bot sudah siap untuk bekerja, tetapi hanya tersedia untuk administrator.

Setelah mengkonfirmasi aplikasi, itu akan tersedia untuk semua pengunjung. Kirim aplikasi untuk moderasi.

Contoh tautan langsung ke dialog dengan bot
 https://m.me/zetridercode 


Penting:

  1. Situs harus bekerja di https
  2. Bot Facebook mengembalikan PSID yang tidak cocok dengan ID pengguna publik.
  3. Secara default, pengontrol bot bekerja dengan model \ App \ User. Jika Anda memiliki case yang berbeda, buat saja controller dan model Anda berdasarkan contoh dari repositori. Model , Pengendali

Cara menambahkan penyedia Anda:

Buat kelas Anda yang mewarisi kelas abstrak

 ZetRider\BotAuth\AbstractProvider 

Contoh contoh / ContohProvider.php

Tambahkan penyedia ke layanan, misalnya, AppServiceProvider dalam metode boot

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

Penyedia akan memproses permintaan dalam panggilan balik di

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

Acara

Acara sukses pemrosesan pesan baru dari 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/id455104/


All Articles