By default, Spina CMS includes basic user management using it's own Spina::User
model. If you're adding Spina to an existing app, you might already have some form of authentication that you want to use for Spina.
You can do that by creating a module with two methods: authenticate
and logged_in?
. Here's an example of a project using it's own session[:user_id]
:
module MyApp
module CustomAuth
extend ActiveSupport::Concern
included do
helper_method :logged_in?
helper_method :current_user
end
def logged_in?
current_user
end
def current_user
@current_user ||= MyApp::User.find_by(id: session[:user_id]) if session[:user_id]
end
private
def authenticate
redirect_to "/login" unless logged_in?
end
end
end
After creating the module, you need to configure it in config/initializers/spina.rb
:
Spina.configure do |config|
# ...
config.authentication = "MyApp::CustomAuth"
end