Bir İyonik 2 uygulamasında JWT kimlik doğrulamasını ayarlamak için this guide'u takip ediyorum. Şeylerin giriş tarafı kesinlikle çalışıyor, ancak AuthHttp sınıfını kullanmaya çalıştığımda, Chrome'un network
sekmesinde veya sunucu tarafında hiçbir şey yapılmıyor ve hiçbir şey gösterilmiyor.Angular2-jwt AuthHttp istekte bulunmuyor
benim app.ts dosyasında aşağıdaki vardır:
import 'es6-shim';
import {App, IonicApp, Platform, MenuController} from 'ionic-angular';
import {HTTP_PROVIDERS, Http, Headers} from 'angular2/http';
import {provide} from 'angular2/core';
import {AuthHttp, AuthConfig} from 'angular2-jwt';
import {AuthData} from './providers/auth-data';
import {UserData} from './providers/user-data';
@App({
templateUrl: 'build/app.html',
providers: [
HTTP_PROVIDERS,
provide(AuthHttp, {
useFactory: (http) => {
return new AuthHttp(new AuthConfig(), http);
},
deps: [Http]
}),
AuthData,
UserData
],
config: {
apiURL: 'http://localhost:9000'
} // http://ionicframework.com/docs/v2/api/config/Config/
})
ve ardından kullanıcı data.ts içinde bu var:
import {Injectable} from 'angular2/core';
import {Http, Headers, RequestOptions} from 'angular2/http';
import {Config, Storage, LocalStorage, Events} from 'ionic-angular';
import {AuthHttp, JwtHelper, tokenNotExpired} from 'angular2-jwt';
import {Observable} from 'rxjs/Observable';
import 'rxjs/Rx';
/**
* @name UserData
* @description
* Provider for any user related data.
*/
@Injectable()
export class UserData {
apiURL: string;
contentHeader: Headers = new Headers({'Content-Type': 'application/json'});
error: string;
jwtHelper: JwtHelper = new JwtHelper();
local: Storage = new Storage(LocalStorage);
storage: any;
user: any;
constructor(
public authHttp: AuthHttp,
private config: Config,
private events: Events,
private http: Http
) {
this.apiURL = config.get('apiURL');
let token = this.local.get('id_token')._result;
if (token) {
this.user = this.jwtHelper.decodeToken(token);
}
}
getUser() {
return new Promise(resolve => {
this.authHttp.get(this.apiURL+'/api/users/me', {
headers: this.contentHeader
})
.map(res => res.json())
.subscribe(
data => {
resolve('test');
},
err => {
console.log(err);
}
);
});
}
}
nereye gidiyorum
birisi bana söyleyebilir misiniz yanlış ve bir şey özlüyorsam? Angular2-jwt belgelerini çok defa gözden geçirdim ve her şey bana uygun görünüyor.
Yardımlarınız için teşekkür ederiz.
Düzenleme: getUser()
işlevi içinde console.log(this.authHttp)
yaparsanız
, bu günlüğe aşağıdadır:
AuthHttp {http: Http, _config: Object, tokenStream: Observable}
updated? – kemsky
Hayır, garip bulduğum hiç hata yok. Ben console.log (this.authHttp) 'i kurabilirim ve kodu da gösterir, bu yüzden kesinlikle ayarlanmıştır. –
Muhtemelen benimkiyle aynı sorunu (https://stackoverflow.com/questions/42343576/no-requests-being-dispatched-while-using-authhttp), ancak anladım ki, benim durumumda eksik belirteç. Varsayılan 'id_token' adını 'belirteç' olarak değiştirdim ve authHttp hizmeti onu bulamadı (authConfig'te açık bir şekilde tanımlanmış olsa bile). Böylece onu değiştirdiğimde her şey çalışmaya başladı. – Alexus