连接到 Azure AD 的 Auth0 没有返回我的状态参数

Auth0 connecting to Azure AD is not returning my state params

我正在使用 auth0 学习有关将多租户 saas 连接到 Azure AD 的教程: https://auth0.com/docs/tutorials/building-multi-tenant-saas-applications-with-azure-active-directory

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

我真的找到了解决办法。这很简单,但是 auth0 没有很好地记录它。

调用 lock.getClient().login(...) 时,我必须像这样再次传递 authparams:

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