Уроки роботи зі стеком MEAN

#9 - Закрытый доступ к страницам

#9 - Закрытый доступ к страницам

Некоторые страницы должны быть доступны только для авторизованных пользователей. В уроке мы создадим защищенные страницы, доступ к которым будет закрыт в случае если вы не авторизованы на сайте.

Відеоурок

Telegram group

Підписуйтесь на нашу групу в Телеграмі 🇺🇦

Для создания защищенных страниц на сайте необходимо использовать библиотеку angular2-jwt. Чтобы добавить библиотеку в проект пропишите в терминале следующую команду: 

npm install angular2-jwt --save

Эта библиотека предоставляет доступ к функции tokenNotExpired(). Функция возвращает значение true в случае если пользователь авторизован и false в противоположном случае.

Закрытые страницы

Для закрытых страниц используйте файл с расширением .guard.ts. В этом файле вам необходимо описать функцию CanActivate. Пример функции:

mport { Injectable } from '@angular/core';
import { Router, CanActivate } from '@angular/router';
import { AuthService } from './auth.service';

@Injectable()
export class IsLoggedIn implements CanActivate {
	constructor(private authService: AuthService, private router: Router) {}

	canActivate() {
		if(this.authService.isLoggedIn())
			return true;
		else {
			this.router.navigate(['reg']);
			return false;
		}
	}
}

В примере выше пользователь будет переадресовываться каждый раз на страницу регистрации в том случае, если он не авторизован на сайте.


После создания такого файла вам остается лишь в файле app.module прописать для каких страниц доступ будет закрыт:

import { IsLoggedIn } from './isLogged.guard';

const appRoute: Routes = [
	{path: 'dashboard', component: DashboardComponent, canActivate: [IsLoggedIn]},
];

Матеріали для курсу

Щоб завантажувати матеріали до відеокурсів, необхідно оформити підписку на сайт

Завдання до уроку

Необхідно оформити передплату на проект, щоб отримати доступ до всіх домашніх завдань

Велике завдання за курсом

Вам необхідно оформити передплату на сайті, щоб мати доступ до всіх великих завдань. У завдання входить методика рішення, а також готовий проект з відповіддю до завдання.
PS: подібні завдання доступні при підписці від 1 місяця

Також варто подивитися

Фреймворк Next JS / Изучение NextJS для начинающих
8 уроків
MERN Stack / Разработка веб-приложения
9 уроків
Уроки Angular для начинающих
11 уроків
Курс по React JS для начинающих
11 уроків
Курс по NestJS с нуля / Разработка веб проектов
9 уроків
Уроки Node JS и Express для начинающих
13 уроків
Коментарі
Додати коментар

Поки що коментарів немає