mochi
Mochi
Mochi is a shard inspired by devise for ruby. Mochi handles everything authentication. Currently amber is the only supported framework with both granite and jennifer orms being supported. I am open to other frameworks being supported, such as lucky, but there is a lot to do before that. If you want this to work with lucky asap, you'll have to open a pull request right now.
The Mochi CLI makes installation easy. Please give a thanks to the amber core team for their CLI. I have pulled it out of amber to use as a base.
Documentation
API Docs
Gitbook
Mochi Modules
Note: Only the class 'User' is supported.
Currently, Mochi has 7 modules:
- Basic authentication. Sign up, sign in, sign out.
- Mandatory columns:
email
: String - User's sign up emailpassword_digest
: String? - User's password stored as a bcrypt digest
Note: Mochi also puts 'password' and 'new_password' in as attributes, however we don't want these saved in plain text so do NOT add them as columns.
- Users are required to confirm their email prior to activation. Mochi generates a UUID for each user and sends an email. This UUID is for user activation and verification
- Mandatory columns:
confirmation_token
: String - Token used for email activation & verificationconfirmed
: Bool - True if user account is activatedconfirmed_at
: Timestamp? - Time user confirmed accountconfirmation_sent_at
: Timestamp? - Time confirmation email sentunconfirmed_email
: String? - An email address copied from the email attr after confirmation.
- Users can sign up with google, facebook, github, twitter or vk. (Google is still WIP)
- Mandatory columns:
uid
: String? - Identifaction number used for sign-in verification (These user's do not have apassword_digest
oremail
)
- Tracks user's sign in count, ip addresses and sign in time
- Mandatory columns:
sign_in_count
: Integer - Total amount of times a user has successfully signed incurrent_sign_in_ip
: String? - The most recent IP address used to sign inlast_sign_in_ip
: String? - The second most recent IP address used to sign incurrent_sign_in_at
: Timestamp? - The time a user last signed in atlast_sign_in_at
: Timestamp? - The second most recent time a user signed in
- Allows users to reset password via email link
- Mandatory columns:
reset_password_sent_at
: Timestamp? - Time password reset email was sent atreset_password_token
: String? - UUID token for verificationpassword_reset_in_progress
: Bool - returns true when a password reset was initialized but not confirmed & completed.
- User's have X number of times to log in before account is locked & email verification occurs
- Mandatory columns:
locked_at
: Timestamp? - Time account was locked atunlock_token
: String? - UUID token for verificationfailed_attempts
: Integer - Number of attempts currently failed since last sign in
- User's can invite other users. Inviter inputs email, email sent out, invitee inputs password, account is confirmed if confirmable is active.
- Mandatory columns:
invitation_accepted_at
: Timestamp? - Time invitee accepted inviteinvitation_created_at
: Timestamp? - Time inviter created inviteinvitation_token
: String? - UUID verification tokeninvited_by
: Integer? - Inviter user idinvitation_sent_at
: Timestamp? - Time invite email was sent (same asinvitiation_created_at
)