entrance 0.5.3 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/examples/sinatra-app/app/routes.rb +0 -2
- data/lib/entrance/addons/omniauth.rb +16 -9
- data/lib/entrance/fields.rb +2 -2
- data/lib/entrance/version.rb +2 -2
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 538d36c02daa5e94fb32097d12e8866d3d64bc3a
|
4
|
+
data.tar.gz: bd49b081f1c840cfc6a1b76b95b4bba009cf37e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 10219873d111c01af05ca8e0fb3b7392f3416eeb7149d13ffe15544239d7d0dd35e02a76d4277e95d6642a75cb11374ead3baad47d2711f27f187e4284db9869
|
7
|
+
data.tar.gz: 4260f27c3f752a887e666b65e905f7aed5468a13df1f35d7272d177f475b2a2133c644ec33de5dfafc6f9d803197c3984a968c57c640dd4dd7b5daba84bf47ba
|
data/README.md
CHANGED
@@ -43,8 +43,6 @@ module Example
|
|
43
43
|
post '/login' do
|
44
44
|
if user = User.authenticate(params[:email], params[:password]) and user.active?
|
45
45
|
remember = ['on', '1'].include?(params[:remember_me])
|
46
|
-
|
47
|
-
puts user.inspect
|
48
46
|
login!(user, remember)
|
49
47
|
|
50
48
|
flash[:success] = 'Welcome back!'
|
@@ -10,8 +10,10 @@ require 'entrance/addons/omniauth'
|
|
10
10
|
class Hello < Sinatra::Base
|
11
11
|
register Entrance::OmniAuth
|
12
12
|
|
13
|
+
set :sessions, true
|
13
14
|
set :auth_test, false # only true for testing
|
14
15
|
set :auth_remember, true # enables 'remember me' for omniauth logins
|
16
|
+
set :auth_redirect, '/' # where to redirect on successful login
|
15
17
|
set :auth_providers, {
|
16
18
|
:twitter => {
|
17
19
|
:key => 'foobar'
|
@@ -57,8 +59,9 @@ module Entrance
|
|
57
59
|
[:get, :post].each do |action|
|
58
60
|
|
59
61
|
app.send(action, '/auth/:provider/callback') do
|
60
|
-
auth
|
61
|
-
|
62
|
+
auth = request.env['omniauth.auth']
|
63
|
+
params = request.env["omniauth.params"]
|
64
|
+
unless user = ::Entrance::OmniAuth.auth_or_create(auth, params)
|
62
65
|
# return return_401
|
63
66
|
redirect_with(Entrance.config.access_denied_redirect_to, :error, 'Unable to create record for new user. Check the log file.')
|
64
67
|
end
|
@@ -66,7 +69,7 @@ module Entrance
|
|
66
69
|
if ::Entrance::OmniAuth.valid_user?(user)
|
67
70
|
login!(user, app.settings.auth_remember)
|
68
71
|
flash[:success] = 'Welcome back!' if respond_to?(:flash)
|
69
|
-
redirect_to_stored_or(to(
|
72
|
+
redirect_to_stored_or(to(app.settings.auth_redirect))
|
70
73
|
else
|
71
74
|
redirect_with(Entrance.config.access_denied_redirect_to, :error, 'Unable to authenticate. Please try again.')
|
72
75
|
end
|
@@ -89,6 +92,10 @@ module Entrance
|
|
89
92
|
def log(str)
|
90
93
|
logger.info(str) rescue nil
|
91
94
|
end
|
95
|
+
|
96
|
+
def omniauth_params
|
97
|
+
@omniauth_params
|
98
|
+
end
|
92
99
|
|
93
100
|
def valid_user?(user)
|
94
101
|
if user.respond_to?(:can_login?) and !user.can_login?
|
@@ -105,14 +112,14 @@ module Entrance
|
|
105
112
|
def find_user_with_username(username)
|
106
113
|
query = {}
|
107
114
|
query[::Entrance.fields.username] = username # .to_s.downcase.strip
|
108
|
-
|
115
|
+
scoped_model.where(query).first
|
109
116
|
end
|
110
117
|
|
111
118
|
def find_user_with_provider_and_uid(provider, uid)
|
112
119
|
query = {}
|
113
120
|
query[::Entrance.fields.auth_provider] = provider
|
114
121
|
query[::Entrance.fields.auth_uid] = uid
|
115
|
-
|
122
|
+
scoped_model.where(query).first
|
116
123
|
end
|
117
124
|
|
118
125
|
def set_auth_credentials(user, provider, uid)
|
@@ -129,14 +136,12 @@ module Entrance
|
|
129
136
|
data = {}
|
130
137
|
data[::Entrance.fields.name] = name
|
131
138
|
data[::Entrance.fields.username] = email
|
132
|
-
user =
|
139
|
+
user = scoped_model.new(data)
|
133
140
|
set_auth_credentials(user, provider, uid)
|
134
141
|
|
135
142
|
if user.valid?
|
136
143
|
return user.save && user
|
137
144
|
else
|
138
|
-
puts user.inspect
|
139
|
-
puts user.local?
|
140
145
|
log "Invalid user: #{user.errors.to_a.join(', ')}"
|
141
146
|
false
|
142
147
|
end
|
@@ -144,7 +149,9 @@ module Entrance
|
|
144
149
|
|
145
150
|
# authorizes or creates a user with the given oauth credentials.
|
146
151
|
# does not check if user is banned or not (the /callback route does that)
|
147
|
-
def auth_or_create(auth)
|
152
|
+
def auth_or_create(auth, params = {})
|
153
|
+
@omniauth_params = params
|
154
|
+
|
148
155
|
provider, uid = auth['provider'], auth['uid']
|
149
156
|
info = auth['info'] || {}
|
150
157
|
|
data/lib/entrance/fields.rb
CHANGED
@@ -15,9 +15,9 @@ module Entrance
|
|
15
15
|
@password = 'password_hash'
|
16
16
|
|
17
17
|
# remember and reset
|
18
|
-
@remember_token = 'remember_token'
|
18
|
+
@remember_token = 'remember_token' # set to nil to disable 'remember me' option
|
19
19
|
@remember_until = 'remember_token_expires_at'
|
20
|
-
@reset_token = 'reset_token'
|
20
|
+
@reset_token = 'reset_token' # set to nil to disable 'reset password' option
|
21
21
|
@reset_until = 'reset_token_expires_at'
|
22
22
|
|
23
23
|
# omniauth
|
data/lib/entrance/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: entrance
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tomás Pollak
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-03-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bcrypt
|
@@ -146,9 +146,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
146
146
|
version: 1.3.6
|
147
147
|
requirements: []
|
148
148
|
rubyforge_project: entrance
|
149
|
-
rubygems_version: 2.
|
149
|
+
rubygems_version: 2.6.13
|
150
150
|
signing_key:
|
151
151
|
specification_version: 4
|
152
152
|
summary: Lean authentication alternative for Rails and Sinatra.
|
153
153
|
test_files: []
|
154
|
-
has_rdoc:
|