使用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使用角度库。
答案 0 :(得分:0)
我实际上找到了解决方案。这很简单,但auth0没有很好地记录。
致电lock.getClient().login(...)
时,我必须再次传递authparams:
lock.getClient().login({
connection: 'myconn-onmicrosoft-com'
, scope: 'openid profile'
, company_id: 'blah...'
, state: 'blah blah...'
});