Ich habe eine devise
authentication
bereits in meinem application
Setup. Jetzt möchte ich second level authentication
in rails
implementieren. Ich möchte hard code
die email
und password
Codierung in controllers
. Ich möchte dies email
und password
mit der email
und password
von der user
bereitgestellten vergleichen. anstatt in database
zu speichern und für second level authentication
zu pflücken., weil diese 5 bis 6 links
zu einem beliebigen Zeitpunkt von nur einem im company
verwendet werden. Ich möchte dies für eine 5 bis 6 actions
in meiner Anwendung im Controller implementieren. Wie kann ich das umsetzen? Ich überprüfte ein Edelsteinjuwel "devise-authy", aber es scheint, dass es eine password
an Mobile für otp
Authentifizierung sendet. Ich möchte keine Authentifizierung. Ich möchte eine zweite Level-Authentifizierung mit der gleichen E-Mail wie Geräte-E-Mail, aber das Passwort sollte anders sein als das ursprüngliche Passwort des Geräts. (Wie in der Tabelle devise möchte ich eine weitere Spalte second_level_password nehmen.) Gibt es gem
für diese Art von Anforderung oder ist dies manually
codiert. Wenn es manually
codiert ist, wie kann ich das tun?Wie implementiert man die Authentifizierung der zweiten Ebene in Schienen?
0
A
Antwort
0
Sie können before_action in Schienen-Controller verwenden.
Fügen Sie die folgende Codezeile in Ihren Controller ein.
before_action :second_level_access
private
def second_level_access
#You can use your logic to get password
unless current_user.second_level_password == params[:second_level_password]
# signout to user because user is already logged in with devise.
redirect_to session_path
end
end
EDIT
Sie
attr_accessor_with_default verwenden können: second_level_logged_in false
Add folgende Zeile application controller
:
before_action :logged_in_with_second_level, if: 'current_user and !second_level_logged_in'
def logged_in_with_second_level
redirect_to 'second_level_logged_in_form_page'
end
in create action
von second_level_logged_in
add Code current_user.second_level_logged_in=true
Verwandte Themen
- 1. Wie implementiert man die Objektkomposition in Schienen?
- 2. Wie implementiert man die Ausnahmebehandlung auf höchster Ebene?
- 3. Wie man einen MultiIndex DataFrame auf der zweiten Ebene anwendet
- 4. Hibernate - Wie überprüfe ich die Cache-Nutzung der zweiten Ebene?
- 5. Schienen Probleme mit der Authentifizierung
- 6. Wie man Stil in html (col) in Schienen implementiert
- 7. Zeitscheibe auf der zweiten Ebene des Multiindex
- 8. Wie implementiert man benutzerdefinierte Authentifizierung in Spring Security 3?
- 9. Wie implementiert man Authentifizierung und Autorisierung in Asp.Net 4.0?
- 10. Benötigen Sie ein Menü der zweiten Ebene
- 11. Oracle Unterabfrage nicht die Variable auf der zweiten Ebene sehen
- 12. Schienen Produktion Protokoll Ebene
- 13. Show Entity in der zweiten Ebene des Arrays in Symfony
- 14. überwintern zweiten Ebene ehcache vermisse
- 15. Animate zweiten Ebene Aufzählungszeichen in slidify
- 16. Wie implementiert man die Funktion?
- 17. Wie implementiert man die Ortsauswahl in Android?
- 18. Authentifizierung mit einem zweiten Manager
- 19. Wie implementiert man die Volltextsuche in Django?
- 20. Index 0 in der zweiten Ebene Javascript Arrays
- 21. Twitter-Authentifizierung in Schienen App - Abmeldung
- 22. Wie implementiert man die Suchfunktion in C#?
- 23. Wie implementiert man die Schnittstelle in Ada?
- 24. Runde Säulen basierend auf der zweiten Ebene der Mehrspaltige
- 25. Warum Generika der zweiten Ebene in Java nicht möglich sind
- 26. Wie implementiert man die Transaktion in Knex?
- 27. Entfernen von Objekten aus dem NHibernate-Cache der zweiten Ebene
- 28. Wie implementiert man die Datenbank in der PhoneGap App?
- 29. Wie implementiert man die IVR-Anruffunktion in der iOS App?
- 30. Wie wird die statusfreie Cookie-Authentifizierung mit Play Silhouette implementiert?
Vielen Dank für die Antwort. Aber wenn ich auf diese Links klicke, wenn der Benutzer nicht bereits mit dem second_level_password angemeldet ist, möchte ich das second_level_authentication-Formular wie das devise bereitstellen. Wenn er sich bereits mit dem zweiten Passwort angemeldet hat, wird kein Formular der zweiten Stufe mehr angezeigt. Wenn er sich von der zweiten Ebene abmeldet, möchte ich nur die Authentifizierung der zweiten Ebene mit der Authentifizierung der ersten Ebene abmelden oder die Sitzung sollte gleich bleiben. Wie kann ich das machen? – John
Sie können attr_accessor_with_default verwenden: second_level_logged_in false In den Anwendungscontroller folgende Zeile: before_action: logged_in_with_second_level, wenn: 'current_user und second_level_logged_in!' def logged_in_with_second_level redirect_to 'second_level_logged_in_form_page' Ende in Aktion von second_level_logged_in erstellen zuweisen current_user.second_level_logged_in = true –
@John, Ich aktualisierte Code in meiner Antwort, bitte werfen Sie einen Blick –