Skip to content

Instantly share code, notes, and snippets.

@zamd
Last active October 4, 2017 06:24
Show Gist options
  • Save zamd/3fb2029e79bbbea3fd53909a81d771fa to your computer and use it in GitHub Desktop.
Save zamd/3fb2029e79bbbea3fd53909a81d771fa to your computer and use it in GitHub Desktop.
Dynamic Client lock customisation for cname

Lock needs tenant/domain level connection information and when cname is enabled lock seems to hit info-v1 endpoint...

Have to override the assetsUrl to correct tenant url manually...

    var customDomain = config.authorizationServer.url.replace('https://', '');
    config.cdn = "https://cdn.au.auth0.com"
    var tenant = config.auth0Domain.split('.')[0];
    config.assetsUrl = config.cdn + "/tenants/v1/" + tenant + ".js";
    var config = JSON.parse(decodeURIComponent(escape(window.atob('@@config@@'))));
    config.extraParams = config.extraParams || {};
    var connection = config.connection;
    var prompt = config.prompt;
    var languageDictionary;
    var language;
    
    if (config.dict && config.dict.signin && config.dict.signin.title) {
      languageDictionary = { title: config.dict.signin.title };
    } else if (typeof config.dict === 'string') {
      language = config.dict;
    }
    var loginHint = config.extraParams.login_hint;
 
    var customDomain = config.authorizationServer.url.replace('https://', '');
    config.cdn = "https://cdn.au.auth0.com"
    var tenant = config.auth0Domain.split('.')[0];
    config.assetsUrl = config.cdn + "/tenants/v1/" + tenant + ".js"; 
    
    console.log(config);
    var lock = new Auth0Lock(config.clientID, customDomain,  {
      auth: {
        redirectUrl: config.callbackURL,
        responseType: (config.internalOptions || {}).response_type ||
          config.callbackOnLocationHash ? 'token' : 'code',
        params: config.internalOptions
      },
      assetsUrl:  config.assetsUrl,
      allowedConnections: connection ? [connection] : null,
      rememberLastLogin: !prompt,
      language: language,
      languageDictionary: languageDictionary,
      theme: {
        //logo:            'YOUR LOGO HERE',
        //primaryColor:    'green'
      },
      prefill: loginHint ? { email: loginHint, username: loginHint } : null,
      closable: false,
      __useTenantInfo: config.isThirdPartyClient
      // uncomment if you want small buttons for social providers
      // socialButtonStyle: 'small'
    });

    lock.show();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment