перенаправление из Google Calendar API после аутентификации на угловой маршрут, проблема с?в URL - PullRequest
0 голосов
/ 23 июня 2019

В процессе предоставления моему приложению доступа к календарю Google из облачных функций пользователь должен получить код, позволяющий мне получить токен. Для этого пользователь должен пройти проверку подлинности и разрешить, после этого пользователь перенаправляется на URL-адрес, который я предоставляю. К этому редиректу добавляется код в виде https://myapp.web.app/myroute?code=someCode&scope

https://myapp.web.app/myroute - маршрут углового приложения. Но кажется, что маршрутизатор не может справиться с этим и выдает следующую ошибку: Не может соответствовать ни одному маршруту. Сегмент URL: «myroute»

Есть ли способ, чтобы угловой маршрутизатор справился с этим? Я на углу 6.0.8

Я получаю ошибку:

Ошибка: Uncaught (в обещании): Ошибка: не удается сопоставить ни один маршрут. Сегмент URL: «myroute»

at ApplyRedirects.push ../ node_modules/@angular/router/fesm5/router.js.ApplyRedirects.noMatchError (router.js: 1382) [угловой]

в app-routing.module.ts У меня есть:

imports ...

const routes: Routes = [
{ path: 'myroute/:someInfo',     component: myRouteComponent, canActivate: [AuthGuard]},
{ path: 'someOtherRoute',     component: someOtherComponent, canActivate: [AuthGuard]}
];

@NgModule({
  imports: [RouterModule.forRoot(routes)],
  exports: [RouterModule]
})
export class AppRoutingModule {}

Я думаю, что проблема в том, что угловой маршрутизатор не может обрабатывать URL-адреса? в качестве разделителя.

Буду рад узнать ваше мнение.

Заранее спасибо за помощь.

1 Ответ

0 голосов
/ 25 июня 2019

Конечно, Angular может обрабатывать параметры запроса! :)

Проблема связана с определением вашего маршрута:

{ path: 'myroute/:someInfo',     component: myRouteComponent, canActivate: [AuthGuard]},

Будет соответствовать myroute/anything-else, но не myroute. Если вы также хотите сопоставить myroute, используйте что-то вроде этого:

const routes: Routes = [
{ path: 'myroute/:someInfo',     component: myRouteComponent, canActivate: [AuthGuard]},
{ path: 'myroute',     component: myRouteComponent, canActivate: [AuthGuard]},
{ path: 'someOtherRoute',     component: someOtherComponent, canActivate: [AuthGuard]}
];

Изменить: В вашем компоненте вам нужно будет подписаться на ActivatedRoute, чтобы получить код https://angular.io/guide/router#activated-route

...