Handling requests with Rack and Rails
Rack Middleware for Ruby on Rails
The Clerk Ruby SDK comes with Rack middleware to lazily load the Clerk session and user. If added as a gem to Rails application, the Clerk::Authenticatable
concern can be added to your controller.
require "clerk/authenticatable"class ApplicationController < ActionController::Baseinclude Clerk::Authenticatableend
This gives your controller and views access to the following methods:
clerk_session
clerk_user
clerk_user_signed_in?
If you want to protect a subset of your controllers (for example, if you have an admin section), you can add a before_filter
like this:
class AdminController < ApplicationControllerbefore_action :require_clerk_sessionprivatedef require_clerk_sessionredirect_to clerk_sign_in_url unless clerk_sessionendend
Don't forget to set the environment variable CLERK_SIGN_IN_URL
or the method clerk_sign_in_url
will fail.