Правильно ли я создаю сеанс в одном логине? - PullRequest
0 голосов
/ 12 января 2019

Я пытаюсь заставить SSO работать для веб-приложения, использующего сервис OneLogin. Я выполнил аналогичные шаги в этом сообщении OneLogin, посвященном стеку, - как я могу перенаправить пользователя на другую страницу после успешного входа? .

Моя конечная цель - создать сеанс, который вернет браузеру cookie-файл для доступа к приложению, которое обрабатывает OneLogin.

Я могу получить токен и токен сеанса, но, похоже, у меня возникли проблемы при создании реального сеанса, подобного этому https://developers.onelogin.com/api-docs/1/login-page/create-session-via-token. Я не могу получить cookie-файл и теперь не уверен, как двигаться дальше. Я что-то здесь упускаю? Спасибо.

   app.post('/index', function(req, res) {
     let options = {
        method: 'POST',
        uri: 'https://api.us.onelogin.com/auth/oauth2/v2/token',
        auth: {
            user: 'username',
            pass: 'password'
        },
        json: {
            grant_type: 'client_credentials'
        }}

        request(options, function(error, response, body){
            let accessToken = body.access_token
            options = { 
              method: 'POST',
              url: 'https://api.us.onelogin.com/api/1/login/auth',
              qs: 
                { username_or_email: 'email',
                password: 'client-password',
                subdomain: 'client-domain' },
              headers: 
                { 'Cache-Control': 'no-cache',
                'Content-Type': 'application/json',
                `Authorization: `bearer:${accessToken}` },`
              body: 
                { username_or_email: 'email',
                password: 'client-password',
                subdomain: 'client-domain' },
              json: true };

         request(options, function (error, response, body) {
            if (error) throw new Error(error);
            const sessionToken = body.data[0].session_token
            options = { 
                method: 'POST',
                url: 'https://client-domain.onelogin.com/session_via_api_token',
                headers:{ 'Cache-Control': 'no-cache',
                    'Content-Type': 'application/json' },
                body: {"session_token": sessionToken},`
                json: true };

         request(options, function (error, response, body){
            if (error) throw new Error(error);
         });
       })
     });
   })
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...