Как переписать аутентификацию в Laravel?

Сервис аутентифицирует только через соцсети - вк ютуб инстаграм. Использую uLogin.

Вот код моего контроллера
<?php

namespace App\Http\Controllers;

use GuzzleHttp\Client;
use Illuminate\Http\Request;
use GuzzleHttp\Exception\RequestException;

class LoginController extends Controller
{
    public function index()
    {
    	return view('login');
    }

    public function callback(Request $request)
    {
    	$token = $request->input('token');

        $client = new Client();

    	try {
            $response = $client->request('GET', 'http://ulogin.ru/token.php', [
                'query' => [
                    'token' => $token
                ]
            ]);
    	} catch (RequestException $e) {
            // ошибка
    	}

        $body = json_decode($response->getBody());

        if (isset($body->error)) {
           // ошибка
        }

        if (! in_array($body->network, 
            ['vkontakte', 'youtube', 'instagram'])) {
            // ошибка
        }

        if ($body->network === 'vkontakte') {
            $body->network = 'vk';
        }

        // todo - сделать регистрацию и аутентификацию
    }
}


Там, где todo, мне нужно сделать такую вещь:

У меня есть 2 таблицы. Users, где хранятся данные о юзерах и users_socials - связки пользователей и их привязок к соцсетям. Структура users_socials проста - user_id (BIGINT), social (ENUM), id_in_service (varchar)

Я хочу сделать так - нажимает пользователь войти через Инстаграм - система должна проверить - есть ли в users_socials уже такой инстаграм-юзер. Если есть, то просто логиним его, нет - создаем нового пользователя и добавляем в users_socials данные о привязке Инстаграма пользователю. Как максимально просто и красиво такое реализовать средствами Laravel Auth?
  • Вопрос задан
  • 449 просмотров
Пригласить эксперта
Ответы на вопрос 1
Вот ответ на похожий вопрос, думаю этот ответ и для твоего случая подойдет

Как переписать аутентификацию в Laravel?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы