Laboratorium 8 Node.js, mongoose, express

Transkrypt

Laboratorium 8 Node.js, mongoose, express
Laboratorium 8
Node.js, mongoose, express-session, passport – cz. 4
Trochę sprawniejsze uruchamianie mongoDB: http://icis.pcz.pl/~rperlinski/mongodb.txt
Skrypt do uruchamiania: http://icis.pcz.pl/~rperlinski/.mongoConf.ini
Zadanie 0 – zadania 0, 1 i 2 z laboratorium 7
Jeśli ktoś nie zrobił działającego API w podziale na moduły to proszę to dokończyć z
poprzedniego laboratorium. Są to zadania 0 i 1. Warto też zrobić zadanie 2 z poprzedniego
laboratorium z wyświetleniem danych w szablonie.
Zadanie 1
Korzystając z express-session tworzymy prostą stronę która zlicza liczbę jej wyświetleń.
Długość sesji ustawić na 15 s i przetestować działanie.
Zadanie 2
Utworzyć aplikację express (w jednym pliku aplikacji), która będzie zawierała API pod
adresem /users do:
• wyświetlenia listy użytkowników(GET),
• dodania użytkownika (POST)
• oraz usunięciach ich wszystkich (DELETE).
Kolekcja powinna zawierać obowiązkowo pola username oraz password – pakiet passport
będzie z tego korzystał. Kolekcja może być jak w poprzednim laboratorium:
{
"_id":"570adc5972104b451fd0beae",
"first":"jann",
"last":"Kowalski",
"username":"Januszek",
"password":"tajneHaslo",
"__v":0
}
Przetestować.
Zadanie 3
Do poprzedniego zadania dodajemy możliwość logowania się (pakiety passport i
passport-local).
1. Instalujemy pakiety passport i passport-local
2. Pod adresem /logowanie (GET) dodajemy formularz z logowaniem
3. Ustawiamy strategię lokalną, sesje dla export i passport, robimy serializację dla sesji
passport.
4. Pod adresem /logowanie (POST) ustawiamy uwierzytelnienie (przekierowanie albo
wyświetlenie jakiejś informacji)
5. Pod adresem /test tworzymy funkcję wyświetlającą stan użytkownika (zalogowany,
niezalogowany).
6. Pod adresem /logout dodajemy kod wylogowujący użytkownika.
Sprawdzamy jak działa logowanie korzystając z przekierowań przy uwierzytelnieniu i z
adresu /test.
Zadanie 4 – passport bez sesji, trwałe i nietrwałe logowanie
Zmienić zadanie 3 wyłączając sesję. Jak zachowuje się aplikacja po zalogowaniu, np. dla
adresu /test?
Proszę tak ustawić aplikację aby logowanie było ważne tylko na czas otwarcia przeglądarki.
Przetestować.
Co należy zrobić aby logowanie było ważna nawet po zamknięciu i ponownym otwarciu
przeglądarki?
Zadanie 5
Dodajemy panel pozwalający zmienić prawie wszystkie dane użytkownika po jego
zalogowaniu z wyjątkiem nazwy (username). Po zmianie hasła system powinien wymusić
ponowne zalogowanie.
Zadanie 6
Zastosować uwierzytelnienie z podziałem na moduły, widoki. Passport działa na zasadzie
wzorca singleton: w każdy module (pliku) projektu można dołączać moduł passport:
var passport = require('passport');
i w każdym module będzie to ten sam obiekt passport. To wystarczy.
Można też wykorzystać pakiet passport-local-mongoose. Zobacz:
https://github.com/mjhea0/passport-local-express4

Podobne dokumenty