Angular2 obtém parâmetros de consulta de URL
Estou configurando um registro do Facebook para meu aplicativo da web Angular2. Depois que o aplicativo é aceito pelo Facebook (depois de ser redirecionado para a página de autorização do Facebook), ele é redirecionado para o meu aplicativo da web com o token e o código como parâmetros de URL:
http://localhost:55976/?#access_token=MY_ACCESS_TOKEN&code=MY_CODE
Mas depois que a página é carregada, os parâmetros são removidos. O URL se torna:
http://localhost:55976/
Como posso extrair os parâmetros (access_token e code) antes de serem removidos? Minha configuração de roteamento contém:
{ path: 'login', component: LoginComponent },
{ path: 'login/:access_token/:code', component: LoginComponent },
EDITAR:
Aqui está como eu redireciono para o facebook no meu 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>
Texto datilografado:
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;
}
A API do Facebook é redirecionada parahttp: // localhost: 55976 / # / login /, é aqui que tento obter os parâmetros access_token e code.
EDIT 2:
Se eu remover o sharp no URL de redirecionamento, o Facebook me redirecionará para o bom URL, mas sem o sharp, o angular não poderá resolver o URL.
Antes de remover '#':
redirect_uri: http://localhost:55976/#/login/
facebook return: http://localhost:55976/?#access_token=MY_ACCESS_TOKEN&code=MY_CODE
Depois de remover '#':
redirect_uri: http://localhost:55976/login/
facebook return: http://localhost:55976/login/?#access_token=MY_ACCESS_TOKEN&code=MY_CODE
Isso significa que o problema vem da questão. Mas sem os nítidos e angulares retornos Erro HTTP 404.0 - Não encontrado.