2014-07-25 4 views
5

Mam projekt i używam strony serwera do obsługi mojego uwierzytelniania i autoryzacji poprzez pliki cookie typu express/paszport, które to rodzaje automatów magicznie obsłużyć stan wysyłając ciasteczko sid tam iz powrotem.Czy mogę używać ember-simple-auth z ciasteczkami domeny sesji ekspresowej/paszportowej

Nie zbudowałem zbyt wiele auth zarządzania na kliencie, właśnie otrzymałem dane użytkownika, które wyrażają bootstrap dla mnie w widoku serwera jako globalny obiekt js. Chciałem sobie z tym poradzić lepiej, więc zacząłem wdrażać ember-simple-auth i mogłem sobie poradzić z logowaniem, stanem itp., Ale wydaje się, że zawsze zależy to od strategii tokena.

W tej chwili mój kod wygląda tak i jak widzisz, muszę rozwiązać obietnicę z tokenem, aby to działało, ale moja pożądana strategia nie wymaga tokenów.

authenticate: function(credentials) { 
      var _this = this; 
      return new Ember.RSVP.Promise(function(resolve, reject) { 
       Ember.$.ajax({ 
        url: _this.tokenEndpoint, 
        type: 'POST', 
        data: JSON.stringify({ 
         email: credentials.identification, 
         password: credentials.password 
        }), 
        contentType: 'application/json' 
       }).then(function(response) { 

        Ember.run(function() { 
         resolve({ 
          token: response.session.token 
         }); 
        }); 
       }, function(xhr, status, error) { 
        var response = JSON.parse(xhr.responseText); 
        Ember.run(function() { 
         reject(response.error); 
        }); 
       }); 
      }); 
     }, 

Moje pytanie jest może Ember-prosty-auth być przystosowane do pracy z wyraźnymi/ciasteczek domen paszportowych czy muszę zmienić mój serwer do korzystania strategię okaziciela lub OAuth2 czy coś.

Dziękuję.

Odpowiedz

4

Sam Ember Simple Auth nie wymaga tokena. W większości przypadków jednak "autoryzator" potrzebuje tokena, aby wprowadzić go do żądań przesyłanych do serwera API (patrz tutaj: http://ember-simple-auth.simplabs.com/ember-simple-auth-api-docs.html#SimpleAuth-Authorizers-Base). Jeśli korzystasz z plików cookie, to w rzeczywistości nie potrzebujesz autoryzatora, ponieważ plik cookie zostanie wysłany na serwer, pozwalając mu zidentyfikować uwierzytelnionego użytkownika. W takim przypadku możesz po prostu rozwiązać za pomocą np. { authenticated: true } od sposobu authenticate i sprawdzić tę wartość w metodzie restore:

restore: function(data) { 
    return new Ember.RSVP.Promise(function(resolve, reject) { 
    if (data.authenticated) { 
     resolve(data); 
    } else { 
     reject(); 
    } 
    }); 
} 
+1

dziękuję Marco za odpowiedź i wielkiej wtyczki. Mam to działa. Wkrótce piszę samouczek. – mobetta

+4

@mobetta w jaki sposób rozpoczyna się samouczek? :) – SuperUberDuper

+0

@mobetta jakieś wiadomości na samouczku? – charsi

Powiązane problemy