Угловая аутентификация 2 Facebook

Ответов: 0

Угловая аутентификация 2 Facebook

Я пытаюсь внедрить аутентификацию facebook из моего приложения с угловым 2, но я думаю, что я вхожу в неправильный путь, и я не могу найти некоторые учебники об этом, а также я хочу спросить, является ли Auth0 единственным способом реализации этого ?. Ну, у меня есть это:

Узел JS-сервера:

//  FB authentication
authRoutes.get('/facebook', passport.authenticate('facebook', { session : false, scope: ['email'] }))
authRoutes.get('/facebook/callback', passport.authenticate('facebook', { session : false, failureRedirect: '/'}), ctrlAuthentication.facebookResponse)

это маршруты в api, и я использую passjs, все работает, когда я вызываю api прямо в браузере, например: localhost: 3000 / api / auth / facebook, и я возвращаю пользователя из api в формате JSON.

Теперь у меня есть угловой 2, и это authentication.service.ts:

import {User} from '../_models/user'

@Injectable()
export class AuthenticationService {
public token : String;
public user : User;

constructor(private http: Http){
}

fbLogin() : Observable<User> {
    let user = this.http.get('/api/auth/facebook')
        .map(this.mapUser);
    return user;
 }

mapUser(response : Response) : User {
    console.log(response)
    let data = response.json();
    this.token = data.token;
    let user = <User>(data.user);
    this.user = user;

    localStorage.setItem('currentUser', JSON.stringify({ user: user, token: data.token }));
    return user;
}
}

и это register.component.ts:

import {AuthenticationService} from '../_services/authentication.service'
import {User} from '../_models/user'

@Component({
  selector: 'crowd-register',
  templateUrl: 'app/RegisterComponent/register.component.html'
})

export class RegisterComponent {
private user : User;
constructor(
    private authenticationService : AuthenticationService
) {}

fbLogin() {
    this.authenticationService.fbLogin().subscribe(
        user => {
            this.user = user;
        }
     )
 }


}

Когда я вызываю fbLogin () из приложения, я получаю эту ошибку:

SyntaxError: Unexpected token < in JSON at position 0
MapSubscriber.AuthenticationService.mapUser [as project] (authentication.service.ts:46)

Я думаю, что это потому, что я не получаю пользователя от своего api, я получаю ответ от facebook, и это не выполняется или что-то в этом роде.

Это изображение console.log (ответ) и ошибка.

Спасибо за все ответы, извините за мой английский.

01JavaScript, Node.js, Facebook, угловой, passport.js,
Похожие вопросы