Skip to content
This repository was archived by the owner on Oct 7, 2022. It is now read-only.

Commit 33896ee

Browse files
author
Michael Reinsch
committed
force SSL, use class
1 parent 2ceb1a1 commit 33896ee

File tree

4 files changed

+56
-46
lines changed

4 files changed

+56
-46
lines changed

example/Gemfile

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
source 'https://rubygems.org'
22

33
gem 'sinatra'
4+
gem 'rack-ssl'
45
gem 'puma'
56
gem 'creatubbles', path: '../'

example/Gemfile.lock

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ GEM
2323
rack (1.6.5)
2424
rack-protection (1.5.3)
2525
rack
26+
rack-ssl (1.4.1)
27+
rack
2628
sinatra (1.4.7)
2729
rack (~> 1.5)
2830
rack-protection (~> 1.4)
@@ -35,6 +37,7 @@ PLATFORMS
3537
DEPENDENCIES
3638
creatubbles!
3739
puma
40+
rack-ssl
3841
sinatra
3942

4043
BUNDLED WITH

example/app.rb

Lines changed: 51 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,63 @@
11
# app.rb
2-
require 'sinatra'
2+
require 'sinatra/base'
3+
require 'rack/ssl'
34
require 'creatubbles'
45
require 'json'
56

6-
enable :sessions
7-
8-
def authenticate!
9-
token = session['token']
10-
if token
11-
@current_user =
12-
begin
13-
@creatubbles_client.connect!(JSON.parse(token))
14-
@creatubbles_client.users.me
15-
rescue => err
16-
session['token'] = nil
17-
logger.info("Could not parse session token: #{err}")
18-
redirect to('/')
19-
end
20-
else
21-
redirect to('/sign_in')
7+
class CreatubblesExampleApplication < Sinatra::Base
8+
enable :sessions
9+
use Rack::SSL
10+
11+
def authenticate!
12+
token = session['token']
13+
if token
14+
@current_user =
15+
begin
16+
@creatubbles_client.connect!(JSON.parse(token))
17+
@creatubbles_client.users.me
18+
rescue => err
19+
session['token'] = nil
20+
logger.info("Could not parse session token: #{err}")
21+
redirect to('/')
22+
end
23+
else
24+
redirect to('/sign_in')
25+
end
2226
end
23-
end
2427

25-
before do
26-
@creatubbles_client = Creatubbles::Client.new(
27-
client_id: ENV['CREATUBBLES_CLIENT_ID'],
28-
client_secret: ENV['CREATUBBLES_CLIENT_SECRET'],
29-
api_url: ENV['CREATUBBLES_API_URL'] || Creatubbles::DEFAULT_API_URL)
30-
end
28+
before do
29+
@creatubbles_client = Creatubbles::Client.new(
30+
client_id: ENV['CREATUBBLES_CLIENT_ID'],
31+
client_secret: ENV['CREATUBBLES_CLIENT_SECRET'],
32+
api_url: ENV['CREATUBBLES_API_URL'] || Creatubbles::DEFAULT_API_URL)
33+
end
3134

32-
get '/' do
33-
@creations = @creatubbles_client.creations.recent
34-
@title = "Recent creations"
35-
erb :creations
36-
end
35+
get '/' do
36+
@creations = @creatubbles_client.creations.recent
37+
@title = "Recent creations"
38+
erb :creations
39+
end
3740

38-
get '/sign_in' do
39-
redirect @creatubbles_client.start_code_flow(url('/callback'))
40-
end
41+
get '/sign_in' do
42+
start_url = @creatubbles_client.start_code_flow(url('/callback'))
43+
logger.info("redirecting to Creatubbles: #{start_url}")
44+
redirect start_url
45+
end
4146

42-
get '/callback' do
43-
@creatubbles_client.complete_code_flow(params[:code], url('/callback'))
44-
logger.info(@creatubbles_client.connection_hash.to_json)
45-
session['token'] = @creatubbles_client.connection_hash.to_json
46-
redirect to('/my/creations')
47-
end
47+
get '/callback' do
48+
@creatubbles_client.complete_code_flow(params[:code], url('/callback'))
49+
logger.info(@creatubbles_client.connection_hash.to_json)
50+
session['token'] = @creatubbles_client.connection_hash.to_json
51+
redirect to('/my/creations')
52+
end
4853

49-
before '/my/*' do
50-
authenticate!
51-
end
54+
before '/my/*' do
55+
authenticate!
56+
end
5257

53-
get '/my/creations' do
54-
@creations = @current_user.creations
55-
@title = "My creations"
56-
erb :creations
58+
get '/my/creations' do
59+
@creations = @current_user.creations
60+
@title = "My creations"
61+
erb :creations
62+
end
5763
end

example/config.ru

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
require './app'
2-
run Sinatra::Application
2+
run CreatubblesExampleApplication

0 commit comments

Comments
 (0)