2016-11-24 4 views
0

Ich baue eine App, die eine API verwendet, und hat auch die Funktionalität, eine Website mit einem Login, Anmeldung etc. Wenn ich eine Client-Server-App wie POSTman verwenden möchte ich Basic verwenden Authentifizierung, aber der Benutzername und das Passwort für die Authentifizierung sollten der Benutzername und das Passwort des Benutzers sein. Wenn sich der Benutzer bei der API anmeldet, sollte er in der Lage sein, die Posts dieses bestimmten Benutzers zu sehen. Gibt es trotzdem, dass die App die Basisauthentifizierung mit dem Benutzernamen und dem Passwort des Benutzers anstelle eines konkreten Passworts für jeden Benutzer implementiert? Ich habe mich bemüht, in dieser Angelegenheit etwas zu finden. Jede Hilfe und Einsicht würde sehr geschätzt werden, wenn irgendein Code gesehen werden muss, werde ich glücklich sein, es zu zeigen.Basic-Authentifizierung Ruby on Rails

Antwort

1

Dies kann auch ohne Devise erreicht werden:

before_action :require_authentication 
def require_authentication 
    authenticate_or_request_with_http_basic do |u,p| 
    user = User.find_by(username: u) 
    true if user && user.authenticate(p) 
    end 
end 
+0

Schön! Es klappt. Sie sind ein Lebensretter :) – Aaron

+0

Gut! Würde es Ihnen etwas ausmachen, die Antwort zu akzeptieren? – mysmallidea

+0

Ich habe eine Frage. Wenn ich diese Authentifizierung verwende funktioniert es, aber es authentifiziert nur einmal. Und es authentifiziert keinen nicht angemeldeten Benutzer? Irgendwelche Vorschläge? @mysmallidea – Aaron

0

Dies kann unter Verwendung devise erreicht werden. Es ist ein Authentifizierungsstein für Schienen. Es ist Dokumentation ist ziemlich gut.

+0

ich devise mit meiner app, bevor aufgenommen haben, und es hat nicht funktioniert zu gut aus. Könntest du vielleicht ein paar Videos vorschlagen, die nützlich wären? Ich habe praktisch das ganze Internet nach api gesucht und Videos entworfen lol. Derzeit verwende ich für meine App API-Schlüssel, aber ich finde, dass dies für den durchschnittlichen Benutzer, der versucht, auf die API zuzugreifen, zu kompliziert ist. – Aaron

+0

Sie sollten https://github.com/lynndylanhurley/devise_token_auth verwenden, wenn Sie API verwenden. – DroidNoob

+0

Wie für Video gibt es nicht viel, was ich dir geben kann. Es gibt einen mit JWT-Authentifizierung. Aber Sie müssen wissen, was JWT ist und wie es verarbeitet wird. – DroidNoob