0

Ich arbeite derzeit an einer Rails 5 App, die als "Backend für Frontend" dient - dh API-Aufrufe von Clients erhalten und sie an andere API weiterleiten (Microservices) . Diese APIs sind durch OAuth gesichert und das "Backend für Frendend" (FeBe-Formular jetzt an) sollte das Access Token in seinem Sitzungsspeicher enthalten. Leider gibt die FeBe den Set-Cookie Header nicht zurück und daher funktionieren Sessions nicht. In meinem Controller Ich habe auch dies:Kein Set-Cookie-Header auf JSON-API-Anfrage zurückgegeben

skip_before_filter :verify_authenticity_token 

Jede Idee, warum Rails nicht die Set-Cookie-Header senden, nicht? (Ich teste die API im Moment mit Postman - muss ich einige spezifische Header in die Anfrage aufnehmen, damit es funktioniert?)

Danke und Gruß!

bearbeiten

ich nicht den Modus API verwenden

Antwort

0

Verwendung von Cookies für API-Authentifizierung ist kein sehr brauchbarer Ansatz wie Cookies funktionieren nur dann wirklich für Browser und nicht sehr gut außerhalb eines einzigen Domänensituation.

Stattdessen müssen sich die Clients auf Ihrer FeBe authentifizieren und ihre Anmeldeinformationen für ein Token tauschen, das dann bei jeder Anforderung übergeben werden muss.

Es gibt mehrere Edelsteine, die bei der tokenbasierten Authentifizierung wie Knock helfen können.

Wenn Ihre FeBe tatsächlich die tatsächliche Authentifizierung an andere Anbieter (wie Twitter oder Facebook) delegieren muss, die der Aufgabe einiges an Schwierigkeit hinzufügt, und Sie vielleicht experimentieren möchten, indem Sie einfach ein einfaches Schlüssel/Passwort-Token setzen Auth-System zuerst, da gibt es eine ganze Menge von Sachen, um den Kopf schon herumzuwickeln.

+0

Der Grund, warum ich Sitzung verwenden möchte, ist Sicherheit. Ich habe irgendwo gelesen (sorry, kann mich nicht an die URL erinnern), dass es nicht ratsam ist, vertrauliche Informationen wie das Zugriffstoken auf dem Client direkt zu haben - aber besser "verstecken" Sie es in einer Sitzung. Das funktioniert natürlich nur für Browser; Eine mobile App muss das Zugriffstoken selbst speichern. Authentifizierung der Microservices später ist bereits klar und funktioniert gut. – Daniel

Verwandte Themen