Die Umleitung Probleme auf, wenn Benutzer kann nicht anmelden, die Verwendung Entwickeln,
In meiner Anwendung, die ich authentifizieren von Benutzern, die Verwendung Entwickeln, und ich bemerkte, dass Sie können die Seite ändern, dass man weitergeleitet wird wenn die Anmeldung fehlschlägt. Im wiki fand ich Folgendes Beispiel:
class CustomFailure < Devise::FailureApp
def redirect_url
new_user_session_url(:subdomain => 'secure')
end
# You need to override respond to eliminate recall
def respond
if http_auth?
http_auth
else
redirect
end
end
end
In diesem Beispiel habe ich meine eigenen CustomFailure Klasse(custom_failure.rb) und in der helper-Ordner (nicht sicher, wohin damit). Dies ist die folgende Klasse habe ich:
class CustomFailure < Devise::FailureApp
def redirect_url
new_user_session_url(:subdomain => 'secure')
end
# Redirect to root_url
def respond
if http_auth?
http_auth
else
root_url
end
end
end
Habe ich auch noch Folgendes in die config/Initialisierungen/entwickeln.rb-Datei (wie das wiki, sollte getan werden):
config.warden do |manager|
manager.failure_app = CustomFailure
end
Ich bekomme zwar keine Fehler, wenn ich falsch unterzeichnen, in der es immer noch leitet der /users/sign_in Seite (nicht die root-Seite) und nix geladen (die Seite ist komplett weiß, obwohl die Quelle nicht leer ist). Ist es comthing falsch mit meiner CustomFailure Klasse, oder vielleicht ist es im falschen Ordner?
Ich bin mit Schienen 3.0.1 und Entwickeln 1.1.rc0.
Wiki, wo dieser code gefunden ist auf: Gewusst wie: Umleiten zu einer bestimmten Webseite, wenn der Benutzer kann nicht authentifiziert werden
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie
custom_failure.rb
in Sielib
Ordner, denn es ist kein Helfer. Dann stellen Sie sicher, dass die Datei geladen wird. Wahrscheinlich würden Sie versuchen, laden Sie alle Dateien inlib
automatisch.BEARBEITEN: um Zu erreichen, ein auto geladen, lib würden Sie fügen Sie den folgenden, um Ihre
application.rb
:EDIT2: du hast vergessen zu nennen
redirect_to
wenn Sie versuchen, um umzuleiten. Im momentrespond
gibt nurroot_url
. Versuchen Sie dies:zur info: das entwickeln-Jungs auch führen Sie diese vor der Umleitung:
store_location!
oder nicht ist deine Entscheidung :] und ja, würde man es vor der Weiterleitung. Die Erweiterung Entwickeln, ist eigentlich wirklich einfach. Entweder überschreiben Sie die Sachen, die Sie benötigen, oder machen Sie eine monkey-patch. Haben Sie einen Blick auf den Source-Code. Versuchenbundle show devise
auf Ihre Konsole. Sie würde wahrscheinlich einen Blick auffailure_app.rb
zu verstehen, was Sie bisher getan habe. Viel Glück!scope
bestimmtes Verhalten in IhrenCustomFailureApp
können Sie testenwarden_options[:scope] == :admin ? admin_thing() : other_thing()