Обработка строки запроса / параметров в nodejs после входа в Okta - PullRequest
0 голосов
/ 29 марта 2020

У меня есть приложение angular и Node (с express framework). Я использую Okta для аутентификации. Это angular приложение открывается с различными параметрами запроса, например. www.mysite.com/home?tab=1. У меня есть настройки маршрутов в angular, который открывает разные страницы в зависимости от значения вкладки. Но в Okta URL-адрес перенаправления должен быть stati c, поэтому я настроил URL-адрес перенаправления как www.mysite.com/home. Информация о параметре запроса теряется после перенаправления okta обратно в приложение. Как я могу получить tab=1 в node js. Я использую passport и passport-openidconnect.

app.use(

      session({

        secret: crypto.randomBytes(64).toString('hex').substring(0, 20),

        resave: true,

        saveUninitialized: true,

      })

    );

    app.use(passport.initialize());

    app.use(passport.session());

    passport.use(

      'oidc',

      new OidcStrategy(

        {

          issuer: '',

          authorizationURL: 'xxxx',

          tokenURL: 'xxxx',

          userInfoURL: 'xxxx',

          clientID: 'xxxx',

          clientSecret: 'xxxx',

          callbackURL: 'xxxx',

          scope: 'profile groups',

          nonce: crypto

            .randomBytes(64)

            .toString('hex')

            .substring(0, 20),

        },

        (issuer, sub, profile, accessToken, refreshToken, params, done) => {

          return done(null, profile);

        }

      )

    );



app.use('/mdi', passport.authenticate('oidc'))

1 Ответ

0 голосов
/ 29 марта 2020

вам нужно будет сделать еще один запрос к бэкэнду, чтобы получить больше информации о пользователе. Это может быть полезно для получения данных, определяющих, какую вкладку нужно показывать в зависимости от пользователя. Например: вы можете отправить запрос в ваш бэкэнд "www.yourbackend/me" и в этой конечной точке вернуть значение табуляции на основе сеанса. Другая возможность состоит в том, чтобы получить jwt с пользовательскими данными в своей полезной нагрузке, однако при таком подходе у вас больше не будет сеансов в бэкэнде.

...