我试图在我的应用程序中实现facebook auth,但是我发现的部分代码遇到了麻烦,因为在那里使用了angular2-jwt。如何将其转换为当前的angular-jwt模块版本
import { Injectable } from '@angular/core';
import 'rxjs/add/operator/toPromise';
import { AuthHttp } from 'angular2-jwt';
declare const FB:any;
@Injectable()
export class UserService {
constructor(private http: AuthHttp) {
FB.init({
appId : 'YOUR-APP-ID',
status : false, // the SDK will attempt to get info about the current user immediately after init
cookie : false, // enable cookies to allow the server to access
// the session
xfbml : false, // With xfbml set to true, the SDK will parse your page's DOM to find and initialize any social plugins that have been added using XFBML
version : 'v2.8' // use graph api version 2.5
});
}
fbLogin() {
return new Promise((resolve, reject) => {
FB.login(result => {
if (result.authResponse) {
return this.http.post(`http://localhost:3000/api/v1/auth/facebook`, {access_token: result.authResponse.accessToken})
.toPromise()
.then(response => {
var token = response.headers.get('x-auth-token');
if (token) {
localStorage.setItem('id_token', token);
}
resolve(response.json());
})
.catch(() => reject());
} else {
reject();
}
}, {scope: 'public_profile,email'})
});
}