Bir JWT döndüren arka uç auth API'yi çağıran bir token-service.ts
oluşturdum. Benim getToken()
burada gösterildiği gibi localStorage bu JWT'yi saklamak:Açısal 2 uygulamamdaki JWT'yi kullanarak ve onu localStorage'da saklayarak. Ancak, bu öğe olmadığında nasıl işleyebilirim?
getToken() {
this.http.post('myAuthEndpoint', { credentials })
.subscribe((res) => {
const token = res.headers.get('Authorization')
localStorage.setItem('id_token', token);
});
}
benim app.component.ts
, benim ngOnInit
yönteminde getToken()
arıyorum.
app.component.html
yanı da bu:
<navigation-top></navigation-top>
<router-outlet></router-outlet>
Ve bir sorunu bu noktada ise - benim top-navigation.service.ts
den getNavigationTop()
bağlantıları ve malzeme doldurmak için benim Benim NavigationTop
bileşeninde, seni arıyorum. getNavigationTop()
'da yaptığım API çağrısı, getToken()
numaralı telefona aldığım auth jetonunu gerektiriyor, ancak null init.
Bu davayı nasıl ele alabilirim?
getNavigationTop(): Observable<any> {
let headers = new Headers({ 'Authorization': localStorage.getItem('token') });
let options = new RequestOptions({ headers: headers });
let data = this.http
.get('my url', options)
.map((res: Response) => {
return res.json().navTop;
})
.catch(this.handleError);
return data;
}
Teşekkür
Teşekkürler. Buradaki tek mesele, 'id_token' 'i kullanacak olan bir düzine hizmetim var. Bu davada nasıl başa çıkabilirim? Yani, ' '' mysite.com/recent'' ı vursaydım ve 'RecentComponent' 'HTTP isteğini' id_token 'gerektiren myapi.com/getRecentPhotos' için tetiklerse '. Böyle bir durumda bu kodu nasıl değiştirebilirim? Üzgünüm, bir süredir bununla uğraşıyordum, bu yüzden daha iyi bir yol olup olmadığını merak ediyorum. –
user1354934
Çalıştırın token onInit, üst öğeyi ilkleri yükler ........................................................ – deek
Evet, ancak benim "app.component", hem yönlendirici-çıkışını (bu, RecentComponent gibi bazı bileşenleri, hem de navigation-top>> gibi) oluşturabilen bir yönelticidir. benim API bazı bağlantılar ile güncellendi.Ancak, benim app.component.ts' onInit benim, getToken() çağıran, ama aynı zamanda benim NavigationTop en onInit getNavigationTop() çağırıyor. Ancak, bu çağrı olmayacak getToken() henüz bitmediğinden id_token var. –
user1354934