Como lidar com fragmentos de hash de URLs de redirecionamento oauth no roteamento Angular2 rc3

Estou tentando encontrar uma maneira de lidar com a configuração de uma rota Angular2 Typescript (usando o roteador 3.0.0-alpha.8) que manipulará rotas que começam com fragmentos de hash.

O aplicativo em que estou trabalhando lida com todo o logon externamente (algo sobre o qual eu não tenho controle) por meio de um back-end de trilhos com oauth2. Redirecionar usuários para a página de login externa funciona bem, mas quando o URL de redirecionamento sempre apresenta alguma forma dehttp://localhost:4200#access_token=TOKEN (onde TOKEN é uma série de números e letras) é enviado de volta, mas não consigo descobrir como configurar uma rota que possa lidar com o# assinar para que eu possa pegá-lo e redirecionar para o componente apropriado.

Em um aplicativo Angular1 anterior, oui-router foi capaz de usar em uma rota de:

.state('accessToken', {
  url: '/access_token=:token',
  controller: 'LoginController',
  params: { token: null }
})

e isso não teve nenhum problema em aceitar o URL de redirecionamento enviado de volta e, então, passaria tudo para o LoginController para lidar com o restante dos negócios de autenticação / token no front-end.

No entanto, este aplicativo é Angular2 e Typescript e os parâmetros de consulta do roteador parecem muito menos flexíveis e estou tendo problemas para implementar uma solução semelhante. Eu tenho ido com base emesta seção nos documentos, mas todos os exemplos estão construindo outra coisa, ex/heroes antes de chegar à parte complicada dos parâmetros de consulta, ex/heroes/:id. Também procurei no stackoverflow e não consegui encontrar nada que funcionasse com Angular2, Typescript e o roteador atual.

Esta é minha solução atual (não funciona):

import { provideRouter, RouterConfig } from '@angular/router';

import { HomeComponent } from './components/home/home.component';
import { TestComponent } from './components/test/test.component';


export const appRoutes: RouterConfig = [
  {
    path: '',
    component: HomeComponent,
    terminal: true
  },
  {
    path: 'access_token',
    component: TestComponent
  }
];

export const APP_ROUTER_PROVIDERS = [
  provideRouter(appRoutes)
];

Se eu pegar o URL de redirecionamento enviado e modificá-lo (puramente para fins de teste) para algo comohttp://localhost:4200/access_token=TOKEN Funciona bem. Infelizmente, na verdade, eu não tenho controle sobre o formato do URL de redirecionamento na vida real, e não consigo encontrar uma solução que possa lidar com o fato de que ele começa com um fragmento de hash em vez de um/ e então meus parâmetros de consulta. Todos os exemplos de roteamento com símbolos ou caracteres complicados que posso encontrar começam com um/.

Tentei modificar minha solução acima para ser:access_token, que não funcionou, além de listá-lo como uma rota filho na rota base, da seguinte forma:

{
  path: '',
  component: HomeComponent,
  terminal: true,
  children: [
    { path: 'access_token',  component: TestComponent },
  ]
}

que resultou no seguinte erro do console:platform-browser.umd.js:2312 EXCEPTION: Error: Uncaught (in promise): Error: Cannot match any routes: ''

Sinto que é absolutamente necessário que haja uma solução limpa para isso, especialmente porque muitas APIs lidam com a autenticação por meio de um URL de redirecionamento como esse, mas não importa o quanto eu procure nos documentos, não consigo encontrá-lo. Qualquer conselho sobre como implementar isso seria muito apreciado.

questionAnswers(1)

yourAnswerToTheQuestion