User Tools

Site Tools


send_email_through_keyclock

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
send_email_through_keyclock [2026/03/09 07:32] sonalisend_email_through_keyclock [2026/03/09 08:00] (current) sonali
Line 1: Line 1:
 + <font 16px/inherit;;inherit;;inherit>**Overview**</font>
 +
 +A system where users can log in using their **email Id /Username + Email OTP** instead of username/password, by Keycloak.
 +
 +**Make Email OTP Java SPI **
 +
 # Run this to find the Keycloak container: # Run this to find the Keycloak container:
  
Line 34: Line 40:
  
 **3. Run build inside the container (registers the provider)** **3. Run build inside the container (registers the provider)**
 +<code>
 +# Verify it's there
 +docker exec keycloak_app ls /opt/keycloak/providers/
 +
 +</code>
 +
 <code> <code>
 docker exec keycloak_app /opt/keycloak/bin/kc.sh build docker exec keycloak_app /opt/keycloak/bin/kc.sh build
Line 49: Line 61:
 **1. First configure SMTP (if not already done)** **1. First configure SMTP (if not already done)**
  
-Realm Settings → \Email Host: smtp.gmail.com, Port: \587 From: from email \id Username: your username, Password: your app \password Enable StartTLS → Save → Test connection+Realm Settings → Email 
 + 
 +Host: smtp.gmail.com, 
 + 
 +Port: 587 
 + 
 +From: from email id 
 + 
 +Username: your username, 
 + 
 +Password: your app 
 + 
 +password Enable StartTLS → Save → Test connection
  
 **2. Create Email OTP Authentication Flow** **2. Create Email OTP Authentication Flow**
 +<code>
  
-Go to Authentication → Flows → Create flow Name: Browser Email OTP → \Save Add step → Username Password Form → \Required Add step → Email OTP → Required+Go to Authentication → Flows → Create flow Name: Browser Email OTP 
 +→ Save Add step → Username Password Form → Required Add step → 
 +Email OTP → Required 
 + 
 +</code>
  
 **3. Bind the flow** **3. Bind the flow**
Line 62: Line 91:
 <code> <code>
 python3 -c "import zipfile; [print(f) for f in zipfile.ZipFile('email-otp-authenticator.jar').namelist()]" python3 -c "import zipfile; [print(f) for f in zipfile.ZipFile('email-otp-authenticator.jar').namelist()]"
 +
 </code> </code>
  
-# check current email template python3 -c " import \zipfile with zipfile.ZipFile('email-otp-authenticator.jar') as z:+# check current email template
  
 <code> <code>
-print(z.read('theme-resources/messages/messages_en.properties').decode()"+python3 -c " 
 +import zipfile 
 +with zipfile.ZipFile('email-otp-authenticator.jar') as z: 
 +    print(z.read('theme-resources/messages/messages_en.properties').decode()
 +"
  
 </code> </code>
Line 128: Line 162:
 </code> </code>
  
-# Browser email otp Flow order should be\\+**# Browser email otp Flow order should be** \\
 Username Form → Required (first)\\ Username Form → Required (first)\\
 Email OTP Form → Required (second) Email OTP Form → Required (second)
  
-# Dont do this+**# Dont do this**
  
 - No required user action available in user details\\ - No required user action available in user details\\
send_email_through_keyclock.1773041545.txt.gz · Last modified: by sonali