2016-09-27 46 views
0

使用auth0,我下面这个教程有关连接多租户SaaS的天青AD: https://auth0.com/docs/tutorials/building-multi-tenant-saas-applications-with-azure-active-directoryAuth0连接到Azure的广告没有回我的状态PARAMS

但是,因为我的情况有点不同,我需要它在用户登录时传递一些参数。对于其他连接,我可以设置options.authParams.state =“...”,并将此状态发送到我的callbackURL。

但是,使用Azure AD连接,我的状态变量不正确。当我收到回调时它是空的。

我包括根据教程新Azure的AD键:

lock.once('signup ready', function() { 
        var link = $('<div class="a0-zocial a0-icon a0-waad" href="#">' 
         + '<span>Azure AD</span></div>'); 
        link.on('click', function() { 
         lock.getClient().login({ 
          connection: 'seedtec-onmicrosoft-com' 
         }); 
        }); 

        var iconList = $(this.$container).find('.a0-iconlist'); 
        iconList.append(link); 
       }); 

并通过选项送我的状态:

var options = { 
        container: 'root' 
        , callbackURL: 'http://.../LoginCallback.ashx' 
        , responseType: 'code' 
        , dict: 'pt' 
        , socialBigButtons: false 
        , authParams: { 
         state: state 
         , scope: 'openid profile' 
         , company_id: $scope.companyId 
        } 
        , mode: mode 
        , callbackOnLocationHash: true 
       }; 



lock.show(options); 

你知道什么是错的呢?

谢谢! PS:我为auth0使用角度库。

回答

0

我真的找到了解决方案。这很简单,但auth0并没有很好的记录。

当调用lock.getClient().login(...)我不得不再次通过authparams这样的:

lock.getClient().login({ 
    connection: 'myconn-onmicrosoft-com' 
    , scope: 'openid profile' 
    , company_id: 'blah...' 
    , state: 'blah blah...' 
}); 
相关问题