Обработка запроса с определенной функцией в компоненте

Мы разрабатываем компонент, который обрабатывает неявный поток OpenID Connect.

На шаге 5 потока «Сервер авторизации отправляет конечного пользователя обратно клиенту с токеном идентификатора и, если требуется, токеном доступа». Мы хотели бы, чтобы наш компонент обрабатывал этот запрос, который будет ~/openid-login.

Как настроить Aurelia так, чтобы она направлялась к функции в нашем компоненте?

export class OpenId {

    // how do we route ~/openid-login to this?
    public handleRequest() {

    }

}

Примечание: здесь идет работа.


person Shaun Luttin    schedule 29.07.2016    source источник


Ответы (1)


Использование navStrategy в вашем routeConfig позволит вам делать все, что вам нравится, перед переходом на страницу. Смотри ниже:

import { autoinject } from 'aurelia-framework';
import { RouterConfiguration, Router, NavigationInstruction } from 'aurelia-router';

@autoinject
export class App {

    router: Router;

    configureRouter(config: RouterConfiguration, router: Router) {

        let openIdNavStrat = (instruction: NavigationInstruction) => {

            console.log('Do whatever we would like to do.');

            // then redirect to where ever you would like.
            instruction.config.moduleId = 'login';
        }

        config.map([
            { route: ['', 'login'], moduleId: 'login' },
            { route: 'openid-login', navigationStrategy: openIdNavStrat },
        ]);

        this.router = router;
    }
}

Здесь есть документация по стратегиям навигации: http://aurelia.io/hub.html#/doc/article/aurelia/router/latest/router-configuration/3

person Jeremy Gonzalez    schedule 29.07.2016
comment
Потребуется ли для этого также наличие представления app.html с представлением маршрутизатора? - person Shaun Luttin; 29.07.2016