I would like to redirect to another url when auth failed.
Any idea please thanks!
plugins
myplugin
lib
auth
my_auth_controller.rb
def after_authenticate(auth_hash)
if not auth
redirect_to "https://example.com"
end
result = Auth::Result.new
end
In Ihrem Code haben Sie die Bedingung if not auth, aber es gibt keine entsprechende else-Anweisung.
Die Methode redirect_to sollte innerhalb einer Controller-Aktion verwendet werden. Wenn Sie sie in einer separaten Methode wie after_authenticate verwenden, stellen Sie sicher, dass sie sich im Geltungsbereich eines Controllers befindet.
Hier ist also der korrigierte Code.
def after_authenticate(auth_hash)
if not auth
redirect_to "https://example.com"
else
# Authentifizierung erfolgreich, fahre mit dem Authentifizierungsprozess fort
result = Auth::Result.new
end
end
Das Ergebnis wäre: Wenn die Authentifizierung fehlschlägt, ist auth nicht wahr, und es wird zu „https://example.com“ weitergeleitet. Andernfalls, wenn die Authentifizierung erfolgreich ist, wird der Authentifizierungsprozess fortgesetzt.
Zur Überprüfung können Sie die Entwicklertools des Browsers verwenden, um Netzwerkanfragen und Weiterleitungen zu inspizieren, oder ein beliebiges Online-Tool wie redirect checker verwenden. Dies kann Ihnen helfen, Weiterleitungsprobleme und Statuscodes zu identifizieren.