benmgreene:accounts-entry

v0.8.3-enrollPublished 9 years ago

This package has not had recent updates. Please investigate it's current state before committing to using it in your project.

Build Status

accounts-entry

NOTE: This is forked from [https://github.com/Differential/accounts-entry] (https://github.com/Differential/accounts-entry) eliminated coffeescript, simpleForm and t9n (replaced by [anti:i18n] (https://github.com/anticoders/meteor-i18n))

accounts-entry is a meteorite package that relies on Iron Router and provides an alternative interface to accounts-ui, with whole pages for sign up and sign in.

Compatibility

accounts-entry is presently compatible with Iron Router 1.0.0 and above. Since meteorite doesn't support semantic version locking.

Getting started

Run:

For Meteor 1.2.0.1 version

meteor add selaias:accounts-entry

For 1.1.0.3 and below

meteor add selaias:accounts-entry@=0.5.0

You can install the accounts-ui package, as it is still used for OAuth setup.

Provided routes

You will get routes and the necessary templates for:

/sign-in
/sign-out
/sign-up
/forgot-password
/verification-pending

You can then either add links to those directly, or use the {{>accountButtons }} helper to give you the apppropriate links for signed-in/signed-out users. The {{>accountButtons }} helper will display a sign-out link and the user's email address when they are signed-in.

Ensuring signed in users for routes

Simply add the following line of code: AccountsEntry.signInRequired(this); to require users be signed in for a route and to redirect the user to the included sign-in page and stop any rendering. Accounts-entry also tracks where the user was trying to go and will route them back after sign in.

Here is an Iron-Router route example:

1  Router.route('userProfile', {
2    path: '/profile',
3    template: 'profile',
4    onBeforeAction: function () {
5      AccountsEntry.signInRequired(this);
6      this.next();
7    }
8  });

Setting up password login

Use meteor add accounts-password if you want to have email/username login authentication options. This is now optional and will only display if installed. You need to configure an OAuth option if you choose not to have password logins.

Setting up OAuth/social integrations

Use accounts-ui to configure your social/OAuth integrations (or manually create records in your database, if you have those skills). We don't have the nice instructions on how to configure the services built into this package, but if you choose to use {{>loginButtons }} elsewhere in your application (even temporarily), you can configure OAuth logins there.

Configuration

Signup codes

We have added support for a signupCode in case you want to have a special code to handout to keep signups at a pace you want. This code is checked if you turn on the client and server side options listed below.

The signup code is only checked for accounts-password logins, so know that OAuth logins will still allow people in.

In CLIENT code only

Since this is a young package, we are maintaining compatibility with accounts-ui (so if in a pinch accounts-entry is broken for you, you could easily switch to accounts-ui). We also use the UI for oauth configs from accounts-ui.

1  Meteor.startup(function () {
2    AccountsEntry.config({
3      logo: 'logo.png',                          // if set displays logo above sign-in options
4      privacyUrl: '/privacy-policy',             // if set adds link to privacy policy and 'you agree to ...' on sign-up page
5      termsUrl: '/terms-of-use',                 // if set adds link to terms  'you agree to ...' on sign-up page
6      homeRoute: '/',                            // mandatory - path to redirect to after sign-out
7      dashboardRoute: '/dashboard',              // mandatory - path to redirect to after successful sign-in
8      profileRoute: 'profile',                   // if set adds link to User Profile
9      passwordSignupFields: 'EMAIL_ONLY',        // One of 'USERNAME_AND_EMAIL', 'USERNAME_AND_OPTIONAL_EMAIL', 'USERNAME_ONLY', or 'EMAIL_ONLY' (default).
10      showSignupCode: true,                      // when true you need to set the 'signupCode' setting in the server (see below)
11      showOtherLoginServices: true,              // Set to false to hide oauth login buttons on the signin/signup pages. Useful if you are using something like accounts-meld or want to oauth for api access
12      passwordminLength: 7,                      // Password minimun lenght
13      requireOneAlpha: true,                     // enforce the use of at least 1 char [a-z] while building the password
14      requireOneDigit: true,                     // enforce the use of at least 1 digit while building the password
15      requirePasswordConfirmation: true,         // enforce user to confirm password on signUp and resetPassword templates
16      waitEmailVerification: true                // Set to true to wait until newly created user's email has been verified. 
17      extraSignUpFields: [{                      // Add extra signup fields on the signup page
18        field: "name",                           // The database property you want to store the data in
19        name: "This Will Be The Initial Value",  // An initial value for the field, if you want one
20        label: "Full Name",                      // The html lable for the field
21        placeholder: "John Doe",                 // A placeholder for the field
22        type: "text",                            // The type of field you want
23        required: true                           // Adds html 5 required property if true
24       }]
25    });
26  });

In SERVER code only

Call AccountsEntry.config with a hash of optional configuration:

1  Meteor.startup(function () {
2    AccountsEntry.config({
3      signupCode: 's3cr3t',         // only restricts username+password users, not OAuth
4      showSignupCode: true,         // place it also on server for extra security
5      waitEmailVerification: true   // will not allow users to login until their email is verified.
6      defaultProfile:{
7          someDefault: 'default'
8          }
9    });
10  });

Note: only set a signupCode if you want to use that feature.

The default configuration includes:

1  wrapLinks: true                   // wraps accounts-entry links in <li> for bootstrap compatability purposes
2  homeRoute: '/'                    // MUST BE SET - redirect to this path after sign-out
3  dashboardRoute: '/dashboard'      // MUST BE SET - redirect to this path after sign-in

Remember, you must provide a route for home (used when signing out) and dashboard (used after signing in).