Description
If you have set up a WordPress installation as a subfolder of a Rails App, this plugin will make your users login with your Rails app. That is, there is no WordPress login; your users will be logged in if they are logged in to Rails, and they are not logged in if not.
The WordPress installation needs to be on the same domain as the Rails app because it needs to access the same cookie.
Installation
- Be sure that the Rails side is set up and working. See FAQ for more details.
- Unzip this plugin folder and copy the rails-login subfolder to your WordPress’s plugin directory.
- Activate the plugin through the ‘Plugins’ menu in WordPress.
- Configure the settings in the ‘Settings/Rails Login’ page.
FAQ
How should the Rails app be set up?
You must first configure your Rails app and WordPress installation to work together. For instructions on how to do that, and a possible way to share a theme between WordPress and Rails is here: Rails Theme
In your routes.rb file:
get ‘/authentication/user’ => “authentication#user”
after logging in and logging out, insert this statement:
write_user_cookie()
Add this to authentication_controller.rb:
#GET /authentication/user.json def user user = read_user_cookie(params[:id]) obj = { user: user } puts obj.to_json() respond_to do |format| format.json { render :json => { user: user } } end end private def get_crypt key = ActiveSupport::KeyGenerator.new(Rails.application.secrets.secret_key_base).generate_key("read-current-user") crypt = ActiveSupport::MessageEncryptor.new(key) return crypt end def write_user_cookie crypt = get_crypt() cookie_name = Rails.application.config.session_options[:key] + '2' id = current_user.present? ? current_user.id : 0 cookies[cookie_name] = crypt.encrypt_and_sign(id) end def read_user_cookie(cookie) crypt = get_crypt() id = crypt.decrypt_and_verify(cookie) user = User.where(id: id).first if user.present? && !user.disabled name = user.first_name + ' ' + user.last_name return { email: user.email, first_name: user.first_name, last_name: user.last_name, url: '', description: '', username: user.email, login: user.email, nickname: name, display_name: name } else return '' end end Reviews
There are no reviews for this plugin.
Contributors & Developers
“Rails Login” is open source software. The following people have contributed to this plugin.
ContributorsTranslate “Rails Login” into your language.
Interested in development?
Browse the code, check out the SVN repository, or subscribe to the development log by RSS.
Changelog
1.0.0
- Initial release.
