Я настраиваю регистрацию в Facebook для своего веб-приложения Angular2. После того, как приложение будет принято через Facebook (после перенаправления на страницу авторизации на Facebook), он перенаправляет на мой webapp с токеном и кодом как параметры URL:
http://localhost:55976/?#access_token=MY_ACCESS_TOKEN&code=MY_CODE
Но как только страница загружается, параметры удаляются. URL станет:
http://localhost:55976/
Как я могу извлечь параметры (access_token и код) до их удаления? Моя конфигурация маршрутизации содержит:
{ path: 'login', component: LoginComponent },
{ path: 'login/:access_token/:code', component: LoginComponent },
EDIT:
Вот как я перенаправляю на facebook в свой login.component: HTML:
<a class="btn btn-social btn-facebook socialaccount_provider facebook" title="Facebook" href="#" (click)="login_facebook()">
<span class="fa fa-facebook"></span> <span style="padding-left:25px">Sign in with Facebook</span>
</a>
Typescript:
login_facebook() {
let url = 'https://www.facebook.com/dialog/oauth?'+
'client_id=my_client_id' +
'&redirect_uri=' + encodeURIComponent('http://localhost:55976/#/login/') +
'&response_type=code%20token';
console.log(url);
window.location.href = url;
}
facebook api перенаправляет на http://localhost:55976/#/login/, вот где я пытаюсь получить параметры access_token и code.
ИЗМЕНИТЬ 2:
Если я удаляю резкость в URL-адресе перенаправления, facebook перенаправляет меня на хороший URL-адрес, но без резких angular не может разрешить URL-адрес.
Перед удалением '#':
redirect_uri: http://localhost:55976/#/login/
facebook return: http://localhost:55976/?#access_token=MY_ACCESS_TOKEN&code=MY_CODE
После удаления '#':
redirect_uri: http://localhost:55976/login/
facebook return: http://localhost:55976/login/?#access_token=MY_ACCESS_TOKEN&code=MY_CODE
Это означает, что проблема исходит из острой. Но без резкости, angular возвращает HTTP-ошибку 404.0 - не найден.