连接到Azure AD的Auth0不会返回我的状态参数

时间:2016-09-27 11:07:33

标签: azure auth0 azure-active-directory

使用auth0,我正在按照本教程关于将多租户saas连接到Azure AD: https://auth0.com/docs/tutorials/building-multi-tenant-saas-applications-with-azure-active-directory

但是,由于我的情况有点不同,我需要它在用户登录时传递一些参数。对于其他连接,我可以设置options.authParams.state =“...”这个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使用角度库。

1 个答案:

答案 0 :(得分:0)

我实际上找到了解决方案。这很简单,但auth0没有很好地记录。

致电lock.getClient().login(...)时,我必须再次传递authparams:

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