Недавно начал знакомиться с Angular и REST. Вот слегка не могу разобраться.
Что мне нужно? Нужно при открытии приложение получить token с сервера и пока токен не загружен приложение не должно быть загружено тоже.
Итак что я имею.
1) Главный компонент:
export class AppComponent {
public navItems = NAV_ITEMS;
constructor(private elementRef: ElementRef, public sharedService: SharedService) {
let clientId: string = elementRef.nativeElement.getAttribute('client-id');
let clientSecret: string = elementRef.nativeElement.getAttribute('client-secret');
let backend: string = elementRef.nativeElement.getAttribute('backend');
let accessToken: string = elementRef.nativeElement.getAttribute('access-token');
this.sharedService.requestToken(clientId, clientSecret, backend, accessToken);
}
}
@Injectable()
export class SharedService {
public token: any;
private _authToken: string;
constructor(private http: Http) {
}
public requestToken(clientId: string, clientSecret: string, backend: string, accessToken: string): void {
let headers = new Headers();
let params = new URLSearchParams();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
params.append('grant_type', 'convert_token');
params.append('client_id', clientId);
params.append('client_secret', clientSecret);
params.append('backend', backend);
params.append('token', accessToken);
this.http.post('/auth/convert-token/', params.toString(), {headers: headers})
.map(response => response.json())
.subscribe(data => {
this.token = data;
this.token.backend = backend;
});
}
get authToken(): string {
return this.token.token_type + ' ' + this.token.access_token;
}
}
Помоги, ЛОР.