Authentication
Learn how to use a custom authentication setup with Spree
If you installed Spree following the Quickstart guide, you can completely this step - you are all set and integrated with the Devise gem.
However if you’re adding Spree to an existing application that has its own authentication system, you will need to follow these steps.
Using Devise
If you’re currently using Devise for authentication, you can follow the steps below to integrate Spree with your existing authentication system.
Firstly set your User
class as Spree.user_class
in your config/initializers/spree.rb
file:
Now, run the generator to setup Spree integration with Devise:
This will create the a new file in lib/spree/authentication_helpers.rb
that serves as a bridge between Spree and your existing authentication system routes. You can then use this file to customize the routes to your liking. It should automatically pick up standard Devise routes.
Secondly, this generator will add necessary modules to your User
model.
This will ensure that your User
model can be used as a Spree user.
This generator will also add 2 new lines to your Spree initializer file:
This ensures that Devise will use Spree storefront layout for login/signup/etc and use Spree mailer layout for sending emails so they’ll match your Storefront branding.
If you have more complex setup, you can remove these lines and customize the routes and mailer in your own initializer file.
Using Custom Authentication
If you’re using a custom authentication system, you can follow the steps below to integrate Spree with your existing authentication system.
Firstly set your User
class as Spree.user_class
in your config/initializers/spree.rb
file:
Now, run the generator to setup Spree integration with your custom authentication system:
This will create the a new file in lib/spree/authentication_helpers.rb
that serves as a bridge between Spree and your existing authentication system routes. You will need to customize this file to fit your needs.
Secondly, this generator will add necessary modules to your User
model.
Admin Panel authentication
By default Spree uses the same model for the admin panel as the storefront. However you can customize it to use a different model.
To do this, you need to add the following code to your config/initializers/spree.rb
file:
This will tell Spree to use the AdminUser
model for the admin panel. You will need to create this model in your application and ensure that it includes the necessary Spree fields.
Was this page helpful?