обрабатывать обратный звонок на паспорт-фейсбук в angular4 + - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть экспресс-приложение Angular со стратегией passport-facebook для регистрации пользователей.

В моей службе в Angular я звоню "https://host/auth/facebook/", вызванную кнопкой в ​​шаблоне:

Выдержка кода услуги:

fbLogin() {
this.http
      .get<{ token: string; expiresIn: number; userId: string, slug:string }>('https://host/auth/facebook/')
.subscribe(response => { 
//save token to local storage, etc
...}

Так посленажав кнопку, пользователь перенаправляется на Facebook, где он дает согласие на предоставление приложению некоторого доступа, а затем Facebook вызывает «/ facebook / callback».

В случае успеха я генерирую токен jwt + некоторые другие метаданные и помещаю их в JSON, затем отправьте его в Angular для сохранения в локальном хранилище.

Таким образом, токен генерируется, передается обратно в Angular и отображается в окне браузера следующим образом:

{name: "NewName",
email: "email@email.com",
token: "eyJhbGciOiJIUzfdI1NiIsInR5cCfdfI6IkpXVCJ9.eyJpZCI6IjViZjc0NTQ1YTRhMjdfI3NDI2ZGM5ZTYwYSIsIm5hbWUiOiJBbGVrc2fdfFuZHIiLCJzbHVnIjoiYWxla3NhbmRyLTZwdWpnZyIsImV4cCI6MTU0ODI1MjM0NywiaWF0IjoxNfdfTQzMDY4MzQ3fQfdf.nfZHE_IFT-Eaa2u_GXUFkVKkChT7Faqsyh_2x2g-ix4",
expiresIn: 3600,
userId: "5bf74545a4afdfd227426dc9e60a",
}

вместе с перенаправлением на"https://host/api/auth/facebook/callback?code=AQA32HfWnlDCT...."

Но мне нужно иметь его в службе Angular после звонка" https://host/auth/facebook/", чтобы сохранить его, а у меня его нет, потому что facebook вызывает "auth / facebook / callback""не приложение Angular.

Подобный вопрос здесь: как обработать обратный вызов passport-facebook в угловом клиенте? , и ответ был о перенаправлении на другую конечную точку в Express, но даже еслисделать это, как справитьсяЭто в Angular непонятно.

Посоветуйте, пожалуйста, как подойти к этому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...