2014-01-06 6 views
5

Muss ich etwas Besonderes in Bezug auf Sitzungen/Authentifizierung tun? Mein Server kann meine Sitzung nicht sehen, nachdem ich mich über die Restangular-Post-Methode angemeldet habe. Die Anmeldung ist erfolgreich, aber danach werden keine Sitzungen auf dem Server angezeigt. Wenn ich mich mit einem normalen Post außerhalb anmelde und dann versuche, eine Seite anzufordern, funktioniert es gut. Ich bemerke auch, dass chrome folgendes in den headern sendet:AngularJS/Restangulare Sitzungen

Cookie:_rexbro_session=g2wAAAABaAJkAAxjdXJyZW50X3VzZXJhAmo=--E0687A67DBE48DA40B6957CBCF6E83FB0E612660 

Dies wird nicht über restangulare Anfragen gesendet.

sollte ich auch erwähnen, dass, wenn ich über restangular anmelden, wird der Server mit dem folgenden Header reagiert:

set-cookie:_rexbro_session=g2wAAAACaAJkAAxjdXJyZW50X3VzZXJhAmgCZAAEdXNlcmgIZAASRWxpeGlyLlVzZXIuRW50aXR5ZAALRWxpeGlyLlVzZXJhAm0AAAASYXZvaWRpYW1AZ21haWwuY29tbQAAAA1KYXlzb24gQmFpbGV5bQAAADwkMmEkMTAkNHNsQVFFRGRDcXd1R3JNNVYwOXBTLkx3MHpVeElNLy5tbVM2eTVmc3BFa3NUbHhuTUtiMzJoB2QAFEVsaXhpci5FY3RvLkRhdGVUaW1lYgAAB91hBGEcYRFhD2EUaAdkABRFbGl4aXIuRWN0by5EYXRlVGltZWIAAAfdYQVhA2EVYR5hFmo=--D3F8D9A8355421B8571DB691ED5C082AD183B034; path=/; HttpOnly 

aber ich sehe nichts wird mit ihm getan.

Vielen Dank im Voraus.

EDIT: Ich hätte sagen sollen, dass mein Server, der die Sitzung speichert, der api-Server, getrennt von dem Server ist, der das Frontend bedient.

+0

Sieht aus wie der Server das Cookie setzt auf dem Client-OK und der Client versucht, um es zurückzusenden. Haben Sie mehrere Anwendungsserver? Können Sie überprüfen, ob die zweite Anfrage das Cookie enthält und auf Ihrer zweiten Anfrage den richtigen Server (den mit Ihrer Sitzung) erreicht? Ich hatte ein Problem mit einem Load Balancer, der keine über XHR eingestellten Cookies erkennt. Ich musste ein vollständiges HTTP-Reload durchführen, wenn ich das Cookie gesetzt habe, um die LB dazu zu bringen, dass meine http-Anfragen zum richtigen Server gehen, anstatt roundübergreifend über die Farm zu gehen. – pherris

+0

Ich landete nur auf Token-Autorisierung. Es ist viel einfacher und funktioniert gut. –

+0

@JaysonBailey - haben Sie einen Beispielcode, wie Sie Token Auth für restangular implimente? alle Snippets, die du posten kannst, wären großartig. Im an diesem Punkt, wo ich jetzt auth zu meinem Restangular-Setup hinzufügen muss – timh

Antwort

5

Ich denke, Ihr für diese Suche:

RestangularProvider.setDefaultHttpFields({ 
    withCredentials: true 
}); 

diese Zeilen in den app.config

+0

Diese Konfiguration sagt Restangular (oder das $ http-Objekt hinter der Szene), den 'Access-Control-Allow-Credentials'-Header in den Anfragen aufzunehmen. Lesen Sie [this thread] (http://stackoverflow.com/questions/4687313/what-exactly-does-the-access-control-allow-credentials-header-do) für das, was dieser Header tut. –