При загрузке приложения происходит проверка куков пользователя, если в них есть токен, делаем запрос и проверяем живой ли этот токен. Если живой то все нормально мы разрешаем идти дальше, а если нет, то отправляем на страницу авторизации. Суть вопроса такова, как заставить приложение ждать ответа от сервера, а только потом выполняться дальше?
//
import { Component, OnInit } from '@angular/core';
import { CookieService } from 'ngx-cookie';
import { Core } from './shared/core';
import { HttpService } from './service/http.service';
import { Router } from '@angular/router';
@Component({
selector: 'my-app',
template: `<router-outlet></router-outlet>`,
providers: [HttpService],
})
export class AppComponent implements OnInit{
constructor(private router: Router, private _cookieService: CookieService, private httpService: HttpService) {
}
ngOnInit(){
alert("Отправили запрос");
if (this._cookieService.get('token')) {
this.httpService
.chekToken(this._cookieService.get('token')).then(data => {
if(data['status']== 1){
Core.id = data['user_id'];
Core.token = data['token'];
alert("Получили ответ");
} else {
this.router.navigate(['/auth']);
}
});
}else {
this.router.navigate(['/auth']);
}
}
}
import {Injectable} from '@angular/core';
import {Http} from '@angular/http';
import {Response, Headers, URLSearchParams} from '@angular/http';
import {Observable} from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import 'rxjs/add/observable/throw';
import 'rxjs/add/operator/toPromise';
@Injectable()
export class HttpService{
constructor(private http: Http){ }
postAuth(email:string, password:string){
var params = new URLSearchParams();
params.set('email', email);
params.set('password', password);
let headers = new Headers({ 'Content-Type' : 'application/x-www-form-urlencoded; application/json;charset=utf-8; charset=UTF-8' });
return this.http.post('https://url/', params, { headers: headers })
.map((resp:Response)=>resp.json())
.catch((error:any) =>{return Observable.throw(error);});
}
chekToken(token:string){
var params = new URLSearchParams();
params.set('token',token)
let headers = new Headers({ 'Content-Type' : 'application/x-www-form-urlencoded; application/json;charset=utf-8; charset=UTF-8' });
return this.http.post('https://url/', params, { headers: headers })
.map((resp:Response)=>resp.json()).toPromise();
}
}
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Только начал изучать NodeJS, так что сильно тапками не забрасывайтеРазбираюсь с потоками, пытаюсь передать содержимое файла index
Каковы правила по именованию файлов в Javascript? Почему некоторые файлы начинаются с большой буквы, а некоторые с маленькой?