如果电子邮件地址字段中的域与指定列表中的域不匹配,我想在 Auth0 通用锁上显示一个警报窗口。Auth0 规则仅在进行身份验证后运行,我希望在此之前发生一些事情,所以我认为窗口警报可能是有用的。
我在适用于单个域的 Auth0 论坛上找到了这个,在本例中为“test.com”,但我想检查多个域。
lock.once('signin ready', function() {
document.querySelector("div.auth0-lock-container input[name='email']").addEventListener('change',function(event){
var username = this.value;
var getDomain = function(email) { return email.match(/@(?:[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|(?:(?:[a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,})$/i);};
if (getDomain(username) !== 'test.com') {
window.alert("Please make sure you're using an approved email address");
}
});
});
我已经尝试将此作为 if 语句,但 window.alert 显示任何域,而不是特定域。那是因为正则表达式不正确还是 if 语句不正确?
lock.once('signin ready', function() {
document.querySelector("div.auth0-lock-container input[name='email']").addEventListener('change',function(event){
var username = this.value;
var getDomain = function(email) { return email.match(/@(?:[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3})|(?:(?:[a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,})$/i);};
if (!['companya.com', 'somecompany.net', 'anothercompany.org'].includes(getDomain(username))) {
window.alert("Please make sure you're using an approved email address");
}
});
});
谢谢!