2017-07-24 3 views
1

Ich habe eine Tabelle in meiner Datenbank mit dem Namen (users_system) enthält:Laravel individuelle authenication mit verschiedenen Feldern

  • User_id
  • user_pass (Klartext)

... einige andere Felder

Was ich will, ist in der Lage zu Laravel (5.2) Authentifizierung mit diesen beiden Feldern unter Berücksichtigung der (Auth::attempt) nur Deal mit E-Mail und Hash-Passwort.

So ist das möglich und wenn ja wie?

Antwort

0

können Sie prüfen, Anmeldeinformationen und Login-Benutzer manuell:

$userSystem = UserSystem::where('user_id', $userId)->where('user_pass', $password)->first(); 
if (!is_null($userSystem)) { 
    // Manually login user. 
    $user = User::find($userId); 
    Auth::login($user); 
} 

Aber das ist eine schreckliche Idee Klartext-Passwörter zu verwenden. Sie sollten das nie in einer echten App machen. \ Auth \ SessionGuard :: login()

+0

dies folgende Fehler Argument 1 übergeben gibt Illuminate muss Schnittstelle Illuminate \ Verträge \ Auth \ authentifizierbarer implementieren, null – BecauseGeek

+0

@BecauseGeek gegeben, das ist, weil Sie verwenden falsche ID oder etwas. Stellen Sie sicher, dass $ user = User :: find ($ userId) den Benutzer erhält. Zum Beispiel, wenn '$ userId = 5' und Sie keinen Benutzer mit dieser ID haben, wird es' null' zurückgeben –

+0

Sie haben Recht, ich habe meine Tabelle Primärschlüssel in Benutzermodell geändert und es hat funktioniert, aber jetzt ich habe ein anderes Problem, wenn ich Auth :: logout() mache; das ist: Fehlermeldung: ORA-00904: "updated_at": ungültige Kennung Position: 52 Statement: Update ums.users_password gesetzt remember_token =: p0, updated_at =: p1 wo user_sys_id =: p2 Ich denke, dass da Ich habe nicht aktualisiert bei und erinnere mich an Token so, wie man das beheben – BecauseGeek

Verwandte Themen