2017-05-17 5 views
0

Ich mache meine Authentifizierung über eine erholsame API, die ich validiere, wenn es erfolgreich ist gibt es mir den Benutzernamen und ich nehme das und versuche mich in meine Laravel App einzuloggen. Wenn ich mich eingeloggt habe, scheint es zu funktionieren. Es scheint jedoch keine Sitzung zu halten, während ich auf der Seite navigiere, die ich noch als Gast authentifiziere.Laravel externe Authentifizierung

public function login(){ 
    // I do a guzzle request that gives me the value of $response['username'] 
    $Username = $response['username']; 
    $user = User::where('username','thomc')->first(); 
    Auth::login($user); 
    return view('home'); 
} 

Das ist mein User-Modell:

<?php 

namespace App; 

use Illuminate\Notifications\Notifiable; 
use Illuminate\Foundation\Auth\User as Authenticatable; 

class User extends Authenticatable 
{ 
    use Notifiable; 
    protected $table = 'UserDetails'; 
} 

Meine Tabelle:

  • Benutzername
  • Email
  • First_Name
  • Last_Name
  • BA
  • Facebook_ID
  • Google_ID

Antwort

0

Nicht sicher, ob es sich um eine Test Änderung ist, aber Sie sind die $ Username nicht verwenden, anstatt für den Benutzer suchen thomc. Eine andere Sache, die beachtet werden sollte, wäre zu überprüfen, ob der Benutzer mit dem Benutzernamen in der Datenbank existiert, wenn der zurückgegebene $ Benutzer nicht null wäre. Versuchen Sie sich auch mit der ID anzumelden.

$username = $response['username']; 
$user = User::where('username', $username)->firstOrFail(); 
Auth::loginUsingId($user->id); 

Auch stellen sicher, dass alle Routen mit der web Middleware gewickelt sind, und entsprechend auth und guest Middleware auf den Strecken nach Bedarf.