Skip to main content

Setting up account activation and email verification

To set up email verification, your identity schema must have an email in its traits and add

{
"ory.sh/kratos": {
"verification": {
"via": "email"
}
}
}

to it, for example:

{
"$id": "https://schemas.ory.sh/presets/kratos/quickstart/email-password/identity.schema.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Person",
"type": "object",
"properties": {
"traits": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email",
"title": "E-Mail",
"minLength": 3,
+ "ory.sh/kratos": {
+ "verification": {
+ "via": "email"
+ }
+ }
}
}
}
}
}

Email verification supports sending out a recovery link to an email address. For this to work, you must have the courier SMTP connection configured in your config file:

 # Ory Identities
+courier:
+ smtp:
+ connection_uri: smtps://username:password@smtp-server:1234/
# ...

You also need to enable verification:

 selfservice:
flows:
# login ...
# registration...

+ verification:
+ enabled: true
+ ui_url: http://127.0.0.1:4455/verification

# ...

That all that's needed! For more information on implementing the UI and details about the payloads, head over to the Email and Phone Verification and Account Activation Documentation!