Angular2 obtener parámetros de consulta de URL
Estoy configurando un registro de Facebook para mi aplicación web Angular2. Una vez que la aplicación acepta a través de Facebook (después de ser redirigida a la página de autorización de Facebook), redirige a mi aplicación web con el token y el código como parámetros de URL:
http://localhost:55976/?#access_token=MY_ACCESS_TOKEN&code=MY_CODE
Pero una vez que se carga la página, se eliminan los parámetros. La url se convierte en:
http://localhost:55976/
¿Cómo puedo extraer los parámetros (access_token y código) antes de que se eliminen? Mi configuración de enrutamiento contiene:
{ path: 'login', component: LoginComponent },
{ path: 'login/:access_token/:code', component: LoginComponent },
EDITAR:
Así es como redirijo a Facebook en mi componente login.com: 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>
Mecanografiado:
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;
}
La API de Facebook redirige ahttp: // localhost: 55976 / # / login /, aquí es donde trato de obtener los parámetros access_token y code.
EDITAR 2:
Si elimino el sharp en la URL de redireccionamiento, Facebook me redirige a la buena URL, pero sin el sharp, angular no puede resolver la URL.
Antes de eliminar '#':
redirect_uri: http://localhost:55976/#/login/
facebook return: http://localhost:55976/?#access_token=MY_ACCESS_TOKEN&code=MY_CODE
Después de eliminar '#':
redirect_uri: http://localhost:55976/login/
facebook return: http://localhost:55976/login/?#access_token=MY_ACCESS_TOKEN&code=MY_CODE
Eso significa que el problema proviene de la aguda. Pero sin el agudo, angular devuelve HTTP Error 404.0 - No encontrado.