StivinKing
@StivinKing

Как правильно объединить аутентификацию angular 2 + django?

Доброго времени суток,

Как наиболее целесообразно будет соединить аутентификацию angular2 + django? Точнее сделать проверку. Аутентификация сейчас работает по средству: создается сессия и backend может отдавать нужную информацию, но вот как лучше сделать проверку? Чтобы в противном случае просто редиректить на страницу авторизации?
  • Вопрос задан
  • 160 просмотров
Решения вопроса 1
vitali1995
@vitali1995
Вся логика на Angular 2 делается через классы-сервисы. Достаточно выполнить 3 простых шага:

1. К примеру, в user.service.ts добавим информацию об авторизованном пользователе.

2. Создадим сервис AuthGuard, который будет отвечать за авторизацию. Он должен имплементировать интерфейс CanActivate

@Injectable()
export class AuthGuard implements CanActivate {
  constructor(private userService: UserService) {}

  canActivate(route: ActivatedRouteSnapshot, state:RouterStateSnapshot): Promise<boolean>|boolean {
    return this.userService.isAuth;
  }
}


3. В описании путей укажем класс, отвечающий за проверку доступа:
{
    path: 'logout',
    component: LogoutComponent,
    canActivate: [AuthGuard]
  },
  {
    path: 'login',
    component: LoginComponent,
    canActivate: [GuestGuard]
  },
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы