Я пытаюсь внедрить аутентификацию 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,