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