Support email whitlisting
This commit is contained in:
@ -65,6 +65,7 @@ If you already have a Keycloak custom theme, it can be easily ported to Keycloak
|
|||||||
- [Possible workarounds](#possible-workarounds)
|
- [Possible workarounds](#possible-workarounds)
|
||||||
- [Implement context persistence (optional)](#implement-context-persistence-optional)
|
- [Implement context persistence (optional)](#implement-context-persistence-optional)
|
||||||
- [Kickstart video](#kickstart-video)
|
- [Kickstart video](#kickstart-video)
|
||||||
|
- [Email domain whitelist](#email-domain-whitelist)
|
||||||
|
|
||||||
# How to use
|
# How to use
|
||||||
|
|
||||||
@ -342,3 +343,8 @@ flash of the blank html before the js bundle have been evaluated
|
|||||||
|
|
||||||
*NOTE: keycloak-react-theming was renamed keycloakify since this video was recorded*
|
*NOTE: keycloak-react-theming was renamed keycloakify since this video was recorded*
|
||||||
[](https://youtu.be/xTz0Rj7i2v8)
|
[](https://youtu.be/xTz0Rj7i2v8)
|
||||||
|
|
||||||
|
# Email domain whitelist
|
||||||
|
|
||||||
|
If you want to restrict the emails domain that can register, you can use [this plugin](https://github.com/micedre/keycloak-mail-whitelisting)
|
||||||
|
and `kcRegisterContext["authorizedMailDomains"]` to validate on.
|
||||||
|
@ -147,6 +147,43 @@
|
|||||||
<#recover>
|
<#recover>
|
||||||
</#attempt>
|
</#attempt>
|
||||||
|
|
||||||
})()
|
})(),
|
||||||
|
"authorizedMailDomains": (function (){
|
||||||
|
|
||||||
|
<#attempt>
|
||||||
|
return "${authorizedMailDomains!''}" || undefined;
|
||||||
|
<#recover>
|
||||||
|
</#attempt>
|
||||||
|
|
||||||
|
})(),
|
||||||
|
"authorizedMailDomains": (function(){
|
||||||
|
|
||||||
|
var out = undefined;
|
||||||
|
|
||||||
|
<#attempt>
|
||||||
|
<#if authorizedMailDomains??>
|
||||||
|
|
||||||
|
out = [];
|
||||||
|
|
||||||
|
<#attempt>
|
||||||
|
<#list authorizedMailDomains as authorizedMailDomain>
|
||||||
|
out.push((function (){
|
||||||
|
|
||||||
|
<#attempt>
|
||||||
|
return "${authorizedMailDomain}";
|
||||||
|
<#recover>
|
||||||
|
</#attempt>
|
||||||
|
|
||||||
|
})());
|
||||||
|
</#list>
|
||||||
|
<#recover>
|
||||||
|
</#attempt>
|
||||||
|
</#if>
|
||||||
|
<#recover>
|
||||||
|
</#attempt>
|
||||||
|
|
||||||
|
return out;
|
||||||
|
|
||||||
|
})(),
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
@ -124,6 +124,7 @@ export declare namespace KcContext {
|
|||||||
passwordRequired: boolean;
|
passwordRequired: boolean;
|
||||||
recaptchaRequired: boolean;
|
recaptchaRequired: boolean;
|
||||||
recaptchaSiteKey?: string;
|
recaptchaSiteKey?: string;
|
||||||
|
authorizedMailDomains?: string[];
|
||||||
};
|
};
|
||||||
|
|
||||||
export type Info = Common & {
|
export type Info = Common & {
|
||||||
|
@ -162,7 +162,14 @@ export const kcRegisterContext: KcContext.Register = {
|
|||||||
"formData": {}
|
"formData": {}
|
||||||
},
|
},
|
||||||
"passwordRequired": true,
|
"passwordRequired": true,
|
||||||
"recaptchaRequired": false
|
"recaptchaRequired": false,
|
||||||
|
"authorizedMailDomains": [
|
||||||
|
"example.com",
|
||||||
|
"another-example.com",
|
||||||
|
"*.yet-another-example.com",
|
||||||
|
"*.example.com",
|
||||||
|
"hello-world.com"
|
||||||
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
export const kcInfoContext: KcContext.Info = {
|
export const kcInfoContext: KcContext.Info = {
|
||||||
|
Reference in New Issue
Block a user