Программная аутентификация в Auth0 - PullRequest
0 голосов
/ 02 мая 2018

Я настраиваю cypress.io для тестирования приложения реагирования. Я пытаюсь программно аутентифицироваться с помощью Auth0 Lock, поэтому мне не нужно тестировать их интерфейс. Вот шаги:

  1. POST для https://[auth0 -домен] .com / usernamepassword / login

     client_id: "",
     client_secret: "",
     audience: "audience",
     redirectUri: "http://[auth0-domain].com:8383/callback",
     scope: "openid email crud:all",
     protocol: "oauth2",
     sso: true,
     username: "",
     password: "",
     connection: "conn",
     tenant: "tenant",
     popup: false,
    
  2. Сбор возвращенных данных формы

  3. POST для https://[auth0 -домен] .com / login / callback

    ва = wsignin1.0 & wresult = маркер & wctx = metastuff

Первые шаги работают, но на третьем шаге я могу отправить сообщение для входа / обратного вызова, но я получаю HTML-страницу с таким сообщением об ошибке:

Looks like something went wrong! There could be a misconfiguration in the system or a service outage. We track these errors automatically, but if the problem persists feel free to <a href="https://auth0.com/support" target="_new">contact us</a> with this tracking id: <b>e88e08e43b7cdee78458</b>.<br/>Please try again.

Мне интересно, если что-то с Auth0 мешает мне делать это или я не отправляю правильные данные / заголовок.

1 Ответ

0 голосов
/ 09 мая 2018

В итоге я использовал модуль auth0-js, который вызывает обратный вызов auth0. Затем я использую 'should', чтобы дождаться установки localStorage:

import auth0 from 'auth0-js';
import url from 'url';

Cypress.Commands.add('login', () => {
  const auth = new auth0.WebAuth({
    audience: 'http://audience',
    domain: 'domain.auth0.com',
    clientID: 'qqqqqqqqqqqq',
    redirectUri: 'http://localhost/callback',
    responseType: 'token id_token',
    scope: 'openid email profile name username groups roles',
    sso: true
  });

  auth.login({username: 'username', password: 'pass'});
  cy.window().its('localStorage.user_profile').should('exist')
});
...