Module: Userbin
- Defined in:
- lib/userbin/events.rb,
lib/userbin/current.rb,
lib/userbin/railtie.rb,
lib/userbin/session.rb,
lib/userbin/userbin.rb,
lib/userbin/version.rb,
lib/userbin/basic_auth.rb,
lib/userbin/configuration.rb,
lib/userbin/authentication.rb,
lib/userbin/rails/auth_helpers.rb,
lib/userbin.rb
Defined Under Namespace
Modules: AuthHelpers
Classes: Authentication, BasicAuth, Callback, Configuration, ConfigurationError, Current, Error, Event, Events, Model, ParseSignedJSON, Railtie, SecurityError, Session, User, VerifySignature
Constant Summary
collapse
- VERSION =
"0.4.5"
Class Method Summary
collapse
Class Method Details
._current_user ⇒ Object
63
64
65
|
# File 'lib/userbin/userbin.rb', line 63
def self._current_user
current.user if current
end
|
.authenticate!(request) ⇒ Object
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
# File 'lib/userbin/userbin.rb', line 8
def self.authenticate!(request)
jwt = request.cookies['_ubt']
return unless jwt
decoded = Userbin.decode_jwt(jwt)
if Time.now > Time.at(decoded['expires_at'] / 1000)
jwt = refresh_session(decoded['id'])
return unless jwt
decoded = Userbin.decode_jwt(jwt)
if Time.now > Time.at(decoded['expires_at'] / 1000)
raise Userbin::SecurityError
end
end
self.current = Userbin::Session.new(decoded)
return jwt
end
|
.authenticated? ⇒ Boolean
47
48
49
|
# File 'lib/userbin/userbin.rb', line 47
def self.authenticated?
current.authenticated? rescue false
end
|
.config ⇒ Object
44
45
46
|
# File 'lib/userbin.rb', line 44
def config
@configuration ||= Userbin::Configuration.new
end
|
34
35
36
37
38
39
40
41
42
|
# File 'lib/userbin.rb', line 34
def configure(config_hash=nil)
if config_hash
config_hash.each do |k,v|
config.send("#{k}=", v)
end
end
yield(config) if block_given?
end
|
.current ⇒ Object
39
40
41
|
# File 'lib/userbin/userbin.rb', line 39
def self.current
Thread.current[:userbin]
end
|
.current=(value) ⇒ Object
43
44
45
|
# File 'lib/userbin/userbin.rb', line 43
def self.current=(value)
Thread.current[:userbin] = value
end
|
.current_profile ⇒ Object
67
68
69
|
# File 'lib/userbin/userbin.rb', line 67
def self.current_profile
_current_user
end
|
.current_user ⇒ Object
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
# File 'lib/userbin/userbin.rb', line 71
def self.current_user
if _current_user
if Userbin.config.find_user
u = Userbin.config.find_user.call(_current_user.id)
if u
u
else
if Userbin.config.create_user
profile = User.find(_current_user.id)
u = Userbin.config.create_user.call(profile)
if u
u
else
_current_user
end
else
raise ConfigurationError, "You need to implement create_user"
end
end
else
_current_user
end
end
end
|
.decode_jwt(jwt) ⇒ Object
4
5
6
|
# File 'lib/userbin/userbin.rb', line 4
def self.decode_jwt(jwt)
JWT.decode(jwt, Userbin.config.api_secret)
end
|
.logged_in? ⇒ Boolean
51
52
53
|
# File 'lib/userbin/userbin.rb', line 51
def self.logged_in?
authenticated?
end
|
.refresh_session(session_id) ⇒ Object
30
31
32
33
34
35
36
37
|
# File 'lib/userbin/userbin.rb', line 30
def self.refresh_session(session_id)
api_endpoint = ENV["USERBIN_API_ENDPOINT"] || 'https://api.userbin.com'
uri = URI("#{api_endpoint}/sessions/#{session_id}/refresh.jwt")
uri.user = config.app_id
uri.password = config.api_secret
net = Net::HTTP.post_form(uri, {})
net.body
end
|
.user ⇒ Object
101
102
103
|
# File 'lib/userbin/userbin.rb', line 101
def self.user
current_user
end
|
.user_logged_in? ⇒ Boolean
55
56
57
|
# File 'lib/userbin/userbin.rb', line 55
def self.user_logged_in?
authenticated?
end
|
.user_signed_in? ⇒ Boolean
59
60
61
|
# File 'lib/userbin/userbin.rb', line 59
def self.user_signed_in?
authenticated?
end
|