7

Niektóre szablony aplikacji Single Page Application (SPA) w VS2012 MVC4 mają wbudowane uwierzytelnianie. Szablon SPA HotTowel nie.Jak ustawić widok logowania (uwierzytelnianie użytkownika) w szablonie SPA HotTowel?

Jaki jest właściwy sposób wdrożenia uwierzytelniania użytkownika (ekran logowania) w SPA HotTowel? HotTowel używa Durandal JS, więc domyślam się, jak zaimplementować uwierzytelnianie użytkownika w Durandal JS

+0

Jakiego rodzaju uwierzytelnienia szukasz? –

+2

Tak proste, jak to tylko możliwe. Tylko po to, aby uwierzytelnić użytkowników przed zapisanymi w bazie danych nazwami użytkowników i hasłami. Po pomyślnym zalogowaniu się SPA załaduje się. – mitaka

+0

Myślałem też o bezpieczeństwie. Używanie [ValidateAntuForgeryToken] ze sterownikiem Breeze.js, ale jest to część innego pytania. – mitaka

Odpowiedz

4

Wygląda na to, że grupa Durandal JS Google ma kilka odpowiedzi, ale nie ma konkretnego kodu przykładowego.

Authentication with Durandal

Looking to add authentication to the SPA sample, but keep it an SPA

Mauro Servienti pomysłów:

Moje backend naraża usługi (WebAPI w moim przypadku), gdzie istnieje getCurrentUser operacji.

Tak więc, w moim main.js, w app.Start() następnie wywołanie zwrotne przed wywołaniem app.setRoot Wywołuję backend pytając, asynchronizuję, dla użytkownika, jeśli wynik jest prawidłowym użytkownikiem Ustawiam root do głównej powłoki aplikacji, w przeciwnym razie ustawiam katalog główny na powłokę logowania.

Na czym polega problem? Z punktu widzenia klienta uwierzytelnienie to tylko "flaga", która mówi: ok, wiem kim jesteś. Możesz wykorzystać moc FormsAuthentication i żyć z nią, a następnie eksponować akcję GET WebAPI, która pozwala ci uzyskać informacje o aktualnie zalogowanym użytkowniku.

0

Jak powiedziałby John Papa, HotTowel to tylko szablon :). W rzeczywistości podczas drugiego kursu dotyczącego SPA w Pluralsight tworzy aplikację od zera.

Nie wystarczy uruchomić aplikację z szablonu SPA, a następnie dodać pozostałe biblioteki HotTowel (Durandal, Breeze, itp.)?

można zobaczyć porównanie tutaj asp.net spa templates

12

stworzyłem szablon rozrusznika z uwierzytelniania i autoryzacji zawarte

Może pomóc ...

Github =>https://github.com/yagopv/durandalauth

strona próbki = >https://durandalauth.azurewebsites.net/

+0

w Twojej aplikacji durandalauth, w jaki sposób udało ci się zapisać token sieciowy json? Czy używasz sesji asp.net lub cookie po stronie klienta? –

+1

Używa pamięci lokalnej lub sesji. Jeśli spojrzysz na stronę https://github.com/yagopv/DurandalAuth/blob/master/DurandalAuth.Web/App/services/appsecurity.js, zobaczysz szczegóły. Następujące funkcje dbają o zarządzanie lokalną pamięcią masową [getSecurityHeaders(), setAccessToken (accessToken, persistent), clearAccessToken()]. Powinieneś dołączyć nagłówki do każdego żądania ajax używając getSecurityHeaders(). PA!! – yagopv

+0

Czy patrząc na swoje rzeczy, chcesz mieć zakodowanego użytkownika i hasło do bazy danych w web.config? Również możesz chcieć uwzględnić skrypty tworzenia bazy danych, abyśmy mogli uruchomić na naszej własnej bazie danych :) Fajne rzeczy na razie inaczej. –