This repository was archived by the owner on Mar 7, 2018. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
How to: Add authentication
pushmatrix edited this page Oct 26, 2012
·
10 revisions
Each time you visit a dashboard, a method called protected!
gets called. For all new Dashing projects, this method does nothing. You can override this behaviour in the config.ru
file.
helpers do
def protected!
# Put any authentication code you want in here.
# This method is run before accessing any resource.
end
end
Here is a sample config.ru
file.
require 'openid/store/filesystem'
require 'omniauth/strategies/google_apps'
require 'dashing'
configure do
set :auth_token, 'YOUR_AUTH_TOKEN'
helpers do
def protected!
redirect '/auth/g' unless session[:user_id]?
end
end
use Rack::Session::Cookie
use OmniAuth::Builder do
provider :google_apps, :store => OpenID::Store::Filesystem.new('./tmp'), :name => 'g', :domain => 'YOURDOMAIN.com'
end
post '/auth/g/callback' do
if auth = request.env['omniauth.auth']
session[:user_id] = auth['info']['email']
redirect '/'
else
redirect '/auth/failure'
end
end
get '/auth/failure' do
'Nope.'
end
end