Cómo manejar fragmentos hash de urls de redireccionamiento de oauth en el enrutamiento Angular2 rc3

Estoy tratando de encontrar una manera de manejar la configuración de una ruta Angular2 Typecript (usando el enrutador 3.0.0-alpha.8) que manejará las rutas que comienzan con fragmentos hash.

La aplicación en la que estoy trabajando maneja todos los inicios de sesión externos (algo sobre lo que no tengo control) a través de un backend de rieles con oauth2. Redirigir a los usuarios a la página de inicio de sesión externa funciona bien, pero cuando la URL de redireccionamiento, siempre hay alguna forma dehttp://localhost:4200#access_token=TOKEN (donde TOKEN es una serie de números y letras) se devuelve pero no puedo entender cómo configurar una ruta que pueda manejar el# firmar para poder atraparlo y redirigirlo al componente apropiado.

En una aplicación anterior de Angular1, elui-router fue capaz de usar en una ruta de:

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

y esto no tuvo problemas para aceptar la URL de redireccionamiento que se envió de vuelta y luego pasaría todo al LoginController para manejar el resto del negocio de autenticación / token en el front-end.

Sin embargo, esta aplicación es Angular2 y TypeScript y los parámetros de consulta del enrutador parecen mucho menos flexibles y tengo problemas para implementar una solución similar. He estado yendo basado enesta sección en los documentos, pero todos los ejemplos están construyendo algo más, por ejemplo/heroes antes de llegar a la parte complicada de los parámetros de consulta, ej./heroes/:id. También busqué en stackoverflow y no pude encontrar nada que funcionara con Angular2 y Typecript y el enrutador actual.

Esta es mi solución actual (que no 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)
];

Si tomo la URL de redireccionamiento que se envía de regreso y la modifico (solo con fines de prueba) a algo comohttp://localhost:4200/access_token=TOKEN funciona bien. Desafortunadamente, en realidad no tengo control sobre el formato de la URL de redireccionamiento en la vida real, y no puedo encontrar una solución que pueda manejar el hecho de que comienza con un fragmento hash en lugar de un/ y luego mis parámetros de consulta. Todos los ejemplos de enrutamiento con símbolos o caracteres complicados que puedo encontrar comienzan con un/.

Traté de modificar mi solución anterior para ser:access_token, que no funcionó, además de enumerarlo como una ruta secundaria en la ruta base de la siguiente manera:

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

que resultó en el siguiente error de consola:platform-browser.umd.js:2312 EXCEPTION: Error: Uncaught (in promise): Error: Cannot match any routes: ''

Siento que absolutamente tiene que haber una solución limpia para esto, especialmente porque muchas API manejan su autenticación a través de una URL de redireccionamiento como esta, pero no importa cuánto investigue los documentos, parece que no puedo encontrarla. Cualquier consejo sobre cómo implementar esto sería muy apreciado.

Respuestas a la pregunta(1)

Su respuesta a la pregunta