A Vendure plugin allow users log in using email and verification code
A Vendure plugin allow users log in using email and verification code
A lot of times we want visitors (aka customers) to complete their purchase order as quick as possilble. However, they usually hesitate to create a credential to a random online shop at checkout step. So we provide a way to quickly authenticate those visitors by their email and a verification code that is sent to their email.
1. Expose a GraphQL Query "requestOneTimeCode".
2. Add an authentication strategy to GraphQL mutation "authenticate".
---
yarn add @semic/plugin-auth-email-code
or
npm i --save @semic/plugin-auth-email-code
``typescript`
import { SemicAuthEmailCodePlugin } from "@semic/plugin-auth-email-code";
...
export const config: VendureConfig = {
...
plugins: [
...
SemicAuthEmailCodePlugin.init(options) //see Options
]
}
- attempts: numberattempts
> Plugin will invalidate the verification code after user's . number
> default: 5
- ttl: number
> Time to live
> How long the verification code is valid for.
> default: 600 (seconds)
- length: boolean
> How many digits/alphabets the verification code should be.
> default: 6
- includeAlphabet: digits only
> Should allow alphabet characters.
> default: false (aka )boolean
- isDev:
> If true, the verification will return along with the response of query. requestOneTimeCode.
> It's for debug and testing.
> default: false
- checkCrossStrategies: boolean`
> Strictly enforce unique email among all strategies
> For example:
- One day, user "John" sign in using Google authentication with "john@gmail.com".
- Another day, user "John" sign in using One-time passcode authenication (this plugin) with the same email.
- This plugin will throw an error if the flag is enabled.
> default: false.
> Note: This only works if Google authentication plugin using email as an identifier
- [x] Prevent cross authenticate (Ex: users use same email for GoogleAuth and SimpleAuth)