Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

User account activation, e-mail confirmation, and invitations with Passport / Node.Js

I want to set up 3 things for my user authentication system running on Passport / Neo4J:

1) Manual user account activation (so that admin does it);

2) Invite-only account creation;

3) E-mail confirmation of account before activation;

I was wondering if you knew of any easy-to-use Passport plugins for it (I haven't found any myself, but also want your recommendations) and also – what would be the best way to implement it (maybe you've already done / seen it, so you could share the code?)

Thank you!

like image 241
Aerodynamika Avatar asked Mar 12 '14 14:03

Aerodynamika


2 Answers

Disclosure: I have never worked with Neo4j, so I am unaware of the specifics but I would accomplish this in the following way:

You can write up some simple queries that insert a users information(ex. username, password, email etc.) to your database upon registration. Then, send the user an email using something like nodemailer in which it states that he has been registered and is awaiting confirmation.

Among the user information that you have stored you should have a column where you store the account status(verified or not verified). You can then write up a small webpage for retrieving all the accounts from your database where verified=false, and confirm the ones that you want by setting verified to true, after which the user would receive an email the user telling him that he can now use your service.

As for invite-only registration, I would have a special table with "registration codes" that would be generated and inserted into that table when a user invites someone. The one who was invited would then receive a link with the code, and upon clicking it the server would check if the code exists in the database, and if it does would allow the user to create an account.

I realize that this is a broad answer, but there are many ways to accomplish what you're looking for!

like image 136
Matas Kairaitis Avatar answered Oct 19 '22 03:10

Matas Kairaitis


Someone was having a go at it with Drawbridge, but the build is failing...https://www.npmjs.org/package/drawbridge

I'm Looking for the same thing.

like image 30
maudulus Avatar answered Oct 19 '22 01:10

maudulus