An Ember Ecosystem
For Spree Commerce

spree-ember-auth

Spree Ember Auth

Build Status Join the chat at https://gitter.im/hhff/spree-ember

The Spree Ember Auth package is a wrapper on Ember Simple Auth, that provides a custom Spree Authorizer and Authenticator that work out of the box with the Spree rails engine via Spree AMS.

It uses:

Installation

ember install spree-ember-auth

This will run the spree-ember-auth generator, which does a few key things:

  • Adds Ember CLI Simple Auth to your host application
  • Installs user related routes at app/routes/spree/*
  • Installs user related route templates at app/templates/spree/*
  • Attempts to install an application route file at app/routes/application.js

Important: If you opted to not override your application route, or you're using an application setup that will ignore the generated application.js such as the Pod structure, you'll need to manually import the Ember Simple Auth application route mixin, like so:

import ApplicationRouteMixin from 'simple-auth/mixins/application-route-mixin';

export default Ember.Route.extend(ApplicationRouteMixin);

It's recommended that you study the Ember Simple Auth Documentation.

For full Spree Ember documentation, visit http://www.spree-ember.com/.

For more information on using ember-cli, visit http://www.ember-cli.com/.

Setup

Now you'll need to tell your router about the new Spree Auth routes:

import Ember from 'ember';
import config from './config/environment';

import spreeRouter from 'spree-ember-storefront/router';
import spreeAuthRouter from 'spree-ember-auth/router';

var Router = Ember.Router.extend({
  location: config.locationType
});

Router.map(function() {
  spreeRouter(this, config);
  spreeAuthRouter(this, config);
});

export default Router;

Configuration

All customization is done through the Ember CLI Environment. Here's the defaults:

"spree": {
  signinPath: 'signin',
  signupPath: 'signup',
  accountPath: 'account'
},

"simple-auth": {
  localStorageKey: 'spree-ember:session',
  authorizer: 'simple-auth-authorizer:spree',
  crossOriginWhitelist: ['http://localhost:3000'],
  authenticationRoute: 'spree.signin',
  routeAfterAuthentication: "spree.account",
  routeIfAlreadyAuthenticated: "spree.account"
}

Overriding the Signin / Signup Component

You can override the appearance and behaviour of the {{spree-auth}} component by running the generator:

ember g spree-ember-auth-component

This will install a template file at app/templates/components/spree-auth and a component file at app/components/spree-auth.

For more information, please see the spree-ember-auth API Documentation.