2016-03-28 4 views
3

Я пробовал следующий код для аутентификации в Laravel 5.2. Но я не знаю, как сделать логин истинным. Я попробовал Auth::login(true) после инструкции if, но он не работает должным образом. Я нашел несколько статей по этой теме, но я не смог найти подробный пример.Как проверить подлинность без базы данных в Laravel 5.2?

public static function Login($email,$password) 
{ 
    $fp = fsockopen ("www.mydomain.com" , 110); 
    if (!$fp) { 
     return "Connection Error"; 
    } 
    $trash = fgets ($fp, 128); 
    fwrite ($fp, "USER ".$email."\r\n"); 
    $trash = fgets ($fp, 128); 
    fwrite ($fp, "PASS ".$password."\r\n"); 
    $result = fgets ($fp, 128); 
    if(substr ($result, 0, 3) == '+OK') 
     return true; //user will be logged in and then redirect 
    else 
     return false; 
} 

Если возможно, не могли бы вы добавить здесь код, как сделать auth true?

P.S. Я могу получить информацию о пользователе с помощью электронной почты с помощью простого запроса после входа в систему.

+0

Этот это крутой вопрос. Вам необходимо создать свой собственный [поставщик аутентификации] (https://laravel.com/docs/5.2/authentication#adding-custom-user-providers), а затем использовать логику, предоставленную в сообщении этому провайдеру. – manix

+0

Мне кажется, мне нужен подробный пример кода. Я читал его снова и снова, но я не мог этого достичь :( – drxy

+0

Я думаю, вы можете использовать базовую аутентификацию Laravel ** HTTP ** https://laravel.com/docs/master/authentication#http-basic-authentication –

ответ

0

Если вы знаете, кто является пользователем (IE: есть $ пользовательский экземпляр уже), вы можете просто войти в систему без использования каких-либо охранников, как показано на documentation

Auth::login($user); 

я передам в экземпляре пользователя вместо от $ электронной почты/$ пароль к вашей функции

$user = User::whereEmail($email)->first(); 
$class->login($user); 

, а затем в классе

public static function Login(User $user) 
{ 
    // ... 
    if(substr ($result, 0, 3) == '+OK') 
     Auth::login($user); 
     return true; //user will be logged in and then redirect 
    else 
     return false; 
} 
Смежные вопросы