sinatra-portier 1.1.1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 43aff4c00fba90124b18706ffef61437a26badf1
4
- data.tar.gz: 477433ac7a39787b1fbcdd17f242d688ef1ebda6
3
+ metadata.gz: 9cf7b340dc8102ec6a3f25c71b27c218da1aec5b
4
+ data.tar.gz: 7849e64624574bfa8f194a0d72707318d0bd153e
5
5
  SHA512:
6
- metadata.gz: 03d34e44f06d5c031c663a5d27220527071378134bca16776960a083ff3f577602fdf9d2a8c8e25542eb1e596521921b0c0b8017a516341bab9d2feff6b4f526
7
- data.tar.gz: f155280de33af8a9af0fcfed33df03b8d4ef2a2c5eba2e8d1d9f5a7e13660696252433206c84579ce922b9301a124515d6b0a809cccf79f9fd9ca990cca97fd3
6
+ metadata.gz: 4c3aaa1f45496587023639ffc3b0bb275c7abaaaabd8554f8d4cbca7309000bf4c25a685010209f932e451a353d1ef48018d7ab263e6280ba6bd79206029ee32
7
+ data.tar.gz: fe1e6802718f600c4267794d3ffb57d52a11945bb962e364b3ac479fa3c35fc0144af6c4781324724e646c9300a621f2c7eec0d05e15c67057589d7d67b91381
@@ -0,0 +1,52 @@
1
+ module Sinatra
2
+ module BrowserID
3
+ module Helpers
4
+ # Returns true if the current user has logged in and presented
5
+ # a valid assertion.
6
+ def authorized?
7
+ ! session[:browserid_email].nil?
8
+ end
9
+
10
+ # If the current user is not logged in, redirects to a login
11
+ # page. Override the login page by setting the Sinatra
12
+ # option <tt>:browserid_login_url</tt>.
13
+ def authorize!
14
+ session[:authorize_redirect_url] = request.url
15
+ login_url = settings.browserid_login_url
16
+ redirect login_url unless authorized?
17
+ end
18
+
19
+ # Logs out the current user.
20
+ def logout!
21
+ session[:browserid_email] = nil
22
+ end
23
+
24
+ # Returns the BrowserID verified email address, or nil if the
25
+ # user is not logged in.
26
+ def authorized_email
27
+ session[:browserid_email]
28
+ end
29
+
30
+ # Returns the HTML to render the Persona login form.
31
+ # Optionally takes a URL parameter for where the user should
32
+ # be redirected to after the assert POST back.
33
+ def render_login_button(redirect_url = nil)
34
+ if session[:authorize_redirect_url]
35
+ redirect_url = session[:authorize_redirect_url]
36
+ session[:authorize_redirect_url] = nil
37
+ end
38
+ redirect_url ||= request.url
39
+ session['redirect_url'] = redirect_url
40
+
41
+ nonce = session[:nonce]
42
+ unless nonce
43
+ session[:nonce] = nonce = SecureRandom.base64
44
+ end
45
+
46
+ template = ERB.new(Templates::LOGIN_BUTTON)
47
+ template.result(binding)
48
+ end
49
+ end # module Helpers
50
+ end
51
+ end
52
+
@@ -0,0 +1,19 @@
1
+ module Sinatra
2
+ module BrowserID
3
+ module Templates
4
+ LOGIN_BUTTON = <<-EOF
5
+ <form action="<%= settings.browserid_url %>/auth" method="POST">
6
+ <input type=email name=login_hint placeholder="you@example.com" />
7
+ <input type=hidden name=scope value="openid email" />
8
+ <input type=hidden name=response_type value="id_token" />
9
+ <input type=hidden name=response_mode value="form_post" />
10
+ <input type=hidden name=client_id value="<%= request.base_url.chomp('/') %>" />
11
+ <input type=hidden name=redirect_uri value="<%= url '/_browserid_assert' %>" />
12
+ <input type=hidden name=nonce value="<%= nonce %>" />
13
+ <input type=submit value="Log In" />
14
+ </form>
15
+ EOF
16
+ end
17
+ end
18
+ end
19
+
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require __dir__ + '/browserid.rb'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sinatra-portier
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.1
4
+ version: 1.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pete Fritchman
@@ -65,6 +65,9 @@ files:
65
65
  - example/config.ru
66
66
  - example/views/index.erb
67
67
  - lib/sinatra/browserid.rb
68
+ - lib/sinatra/browserid/helpers.rb
69
+ - lib/sinatra/browserid/template.rb
70
+ - lib/sinatra/portier.rb
68
71
  homepage: https://github.com/onli/sinatra-portier
69
72
  licenses: []
70
73
  metadata: {}