Hallo ich versuche, ein Login mit einem Benutzernamen ein Passwort mehrere Rollen und eine ip Verifikation zu erstellen, wo, wenn der Benutzer keine zugewiesene IP hat kann er nicht einloggen, ich speichere meine IP als VARCHAR in meiner Benutzertabelle und ich versuche, die IP auf der Tabelle mit dem des Benutzers zu vergleichen, der sich anzumelden versucht, aber wenn ich mich anmelde, gibt es mir diese IP :: 1 zurück, die die IPV6 von localhost ist, wie ich gelesen und eingelesen habe meine db ich habe 127.0.0.1 (ich habe es versucht mit :: 1 auf der db aber kein erfolg) meine frage ist: Was soll ich tun, um eine korrekte Antwort zu erhalten? hier ist mein CodeYii2 ip based login
public function validateIp($ip) {
if($this->ip == Yii::$app->request->userIp)
{
return $this->ip == $ip;
}
else
{
$this->addError($ip, 'La IP no esta habilitada para este usuario');
}
}
Und hier ich die Login
public function login()
{
if ($this->validateIp(Yii::$app->request->userIp))
{
if ($this->validate())
{
return Yii::$app->user->login($this->getUser());
}
}
}
IP erfolgreich zu sein Adressen ändern sich sehr, Sie sollten sich wahrscheinlich nicht auf sie verlassen zur Authentifizierung. –
Wie Alexander sagte, das ist eine schlechte Idee, viele Internet-Provider geben den Haushalten keine statische IP-Adresse. Bleiben Sie bei der Übereinstimmung mit dem Benutzernamen und (hashed) Passwort – Jester
eine Alternative zu IP-Adresse kann eine zusätzliche Prüfung zu einem zuvor generierten Token sein. Es könnte auf der Clientseite gespeichert oder per E-Mail gesendet werden. Die integrierte Passwortwiederherstellung in der erweiterten Vorlage kann in diesem Fall ein gutes Beispiel sein. –