RavenDB Modern MVC Starter Kit
An MVC sample project that uses RavenDB as the backend, supports user registration and confirmation via email (SendGrid), and optionally supports Two-Factor Authentication via email (SendGrid) or SMS (Twilio).
This project provides:
- A RavenDB-backed identity provider, updated to work with the latest MS Identity Framework (2.1 at the time of this writing).
- A registration confirmation system: when a user registers, he is required to confirm his registration via email. The email is sent via your developer SendGrid account. Upon registering, the user is presented with the following screen:
The user will receive an email with a confirmation link. Following the link, he'll be taken to this page:
- Optional two-factor authentication: Users can optionally go to their profile page and add a phone number and enable Two-Factor Authentication:
When the user enters his phone number, we send an SMS verification code via your developer Twilio account:
With Two-Factor Authentication enabled, when the user goes to sign-in next time, he will first login as usual, and then be prompted to enter the 2nd form of identification, either email or SMS:
The user will receive a verfication code via SMS or email and be redirected to the verification page:
Upon entering the verification code, they'll be able to sign in.
To run this sample:
- Run a RavenDB server locally on the default port (8080). Alternately, change the RavenDB connection string in web.config to point it to a database somewhere else.
- Get a SendGrid account. Sign up here for a free 200 emails/day account.
- Get a Twilio account. Sign up here for a free account.
- Create an empty file in the RavenDB.ModernMvcStarterKit\RavenStarterKit directory, name it AppSettingsSecrets.config.ignore
Put your Twilio and SendGrid credentials in AppSettingsSecrets.config.ignore, so that it looks like this:
<appsettings> <!-- SendGrid--> <add key="mailAccount" value="SendGrid account ID" /> <add key="mailPassword" value="SendGrid password" /> <!-- Twilio--> <add key="TwilioSid" value="Twilio SID" /> <add key="TwilioToken" value="Twilio secret token" /> <add key="TwilioFromPhone" value="Twilio number here, e.g. +13334444333" /> </appsettings>
That's it! You now have an MVC site with RavenDB, user registrations with email confirmation, plus optional Two-Factor Authentication.
Questions? I'm @judahgabriel on Twitter.