Sha256: cbdfa6d5c11eae7d9fb922e6b7ed5f3ac98801b64f1c369f8604af966aa5098f
Contents?: true
Size: 1.79 KB
Versions: 1
Compression:
Stored size: 1.79 KB
Contents
require 'sinatra/twitter-bootstrap' require 'faraday' require 'json' require 'uri' module Reviewed module Auth class LoginController < Sinatra::Base register Sinatra::Twitter::Bootstrap::Assets set :views, File.expand_path(File.join(File.dirname(__FILE__), "views")) # use Rack::Session::Cookie, secret: '0Shitt4dL3yTYe0VXfCDmQ', key: "reviewed.auth.session" get "/assets/*" do file = params[:splat].join("/") ext = File.extname(file) case ext.downcase when ".js" content_type "application/javascript" when ".css" content_type "text/css" end File.read(File.expand_path(File.join(File.dirname(__FILE__), "assets", file))) end get "/" do response.delete_cookie(:_reviewed_token) erb :login_form end post "/" do conn = Faraday.new auth_url = File.join(Reviewed::Auth.api_host_path, "authentications") resp = conn.post(auth_url, params) if resp.status == 200 @user = OpenStruct.new(JSON.parse(resp.body)) if params[:drop_cookie] == "true" response.set_cookie(:_reviewed_token, value: @user.token, path: "/", expires: Time.now + (60 * 60 * 24 * 7)) end if params[:return_url] != "" url = params[:return_url] if params[:drop_cookie] != "true" if url.match(/\?/) url += "&_reviewed_token=#{@user.token}" else url += "?_reviewed_token=#{@user.token}" end end redirect url end "Welcome: #{@user.name}" else resp.body @error = JSON.parse(resp.body)["errors"] @error erb :login_form end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
reviewed-auth-0.1.2 | lib/reviewed-auth/login_controller.rb |