在Auth0中以编程方式进行身份验证

时间:2018-05-02 12:56:43

标签: auth0 cypress auth0-lock

我正在设置cypress.io以测试反应应用。我尝试使用Auth0 Lock以编程方式进行身份验证,因此我不必测试其UI。以下是步骤:

  1. 发布到https://[auth0-domain].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. 发布到https://[auth0-domain].com/login/callback

    WA = wsignin1.0&安培; wresult =令牌安培; wctx = metastuff

  4. 第一步有效,但在第三步中,我可以发布登录/回调,但我得到一个带有此错误消息的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 :(得分:2)

我最终使用了调用auth0回调的auth0-js模块。然后我用&#39;应该&#39;等待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')
});