omniauth-identity 3.0.9 → 3.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +109 -54
- data/LICENSE +3 -3
- data/README.md +239 -88
- data/lib/omniauth/identity/model.rb +19 -17
- data/lib/omniauth/identity/models/active_record.rb +4 -3
- data/lib/omniauth/identity/models/couch_potato.rb +6 -5
- data/lib/omniauth/identity/models/mongoid.rb +5 -4
- data/lib/omniauth/identity/models/nobrainer.rb +5 -4
- data/lib/omniauth/identity/models/sequel.rb +28 -15
- data/lib/omniauth/identity/secure_password.rb +51 -24
- data/lib/{omniauth-identity → omniauth/identity}/version.rb +3 -1
- data/lib/omniauth/identity.rb +25 -9
- data/lib/omniauth/strategies/identity.rb +25 -28
- data/lib/omniauth-identity.rb +13 -2
- data.tar.gz.sig +0 -0
- metadata +121 -38
- metadata.gz.sig +0 -0
- data/spec/omniauth/identity/model_spec.rb +0 -44
- data/spec/omniauth/identity/models/active_record_spec.rb +0 -40
- data/spec/omniauth/identity/models/sequel_spec.rb +0 -39
- data/spec/omniauth/identity/secure_password_spec.rb +0 -27
- data/spec/omniauth/strategies/identity_spec.rb +0 -373
- data/spec/spec_helper.rb +0 -40
- data/spec/support/shared_contexts/instance_with_instance_methods.rb +0 -89
- data/spec/support/shared_contexts/model_with_class_methods.rb +0 -29
- data/spec/support/shared_contexts/persistable_model.rb +0 -24
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require "sequel"
|
4
4
|
|
5
5
|
module OmniAuth
|
6
6
|
module Identity
|
@@ -17,20 +17,33 @@ module OmniAuth
|
|
17
17
|
# NOTE: Using the deprecated :validations_class_methods because it defines
|
18
18
|
# validates_confirmation_of, while current :validation_helpers does not.
|
19
19
|
# plugin :validation_helpers
|
20
|
-
plugin
|
21
|
-
|
22
|
-
include
|
23
|
-
include
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
20
|
+
plugin(:validation_class_methods)
|
21
|
+
|
22
|
+
include(::OmniAuth::Identity::Model)
|
23
|
+
include(::OmniAuth::Identity::SecurePassword)
|
24
|
+
|
25
|
+
# `validations: true` (default) would normally incur a dependency on ActiveModel.
|
26
|
+
# Starting in v3.1 we check if ActiveModel is defined before we actually set validations.
|
27
|
+
# If ActiveModel isn't defined, it may be unexpected that validations are not being set,
|
28
|
+
# so this will result in a warning deprecation until release of v4,
|
29
|
+
# at which point the default (for Sequel ORM only) will change to `validations: false`
|
30
|
+
has_secure_password(validations: OmniAuth::Identity::Version.major < 4)
|
31
|
+
|
32
|
+
class << self
|
33
|
+
def auth_key=(key)
|
34
|
+
super
|
35
|
+
# Sequel version of validates_uniqueness_of! Does not incur ActiveRecord dependency!
|
36
|
+
validates_uniqueness_of(:key, case_sensitive: false)
|
37
|
+
end
|
38
|
+
|
39
|
+
# @param arguments [any] -
|
40
|
+
# Filtering is probably the most common dataset modifying action done in Sequel.
|
41
|
+
# Both the where and filter methods filter the dataset by modifying the dataset’s WHERE clause.
|
42
|
+
# Both accept a wide variety of input formats, which are passed as arguments below.
|
43
|
+
# See: https://sequel.jeremyevans.net/rdoc/files/doc/querying_rdoc.html#label-Filters
|
44
|
+
def locate(arguments)
|
45
|
+
where(arguments).first
|
46
|
+
end
|
34
47
|
end
|
35
48
|
|
36
49
|
def persisted?
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require
|
3
|
+
require "bcrypt"
|
4
4
|
|
5
5
|
module OmniAuth
|
6
6
|
module Identity
|
@@ -11,13 +11,13 @@ module OmniAuth
|
|
11
11
|
# a has_secure_password method.
|
12
12
|
module SecurePassword
|
13
13
|
def self.included(base)
|
14
|
-
base.extend
|
14
|
+
base.extend(ClassMethods) unless base.respond_to?(:has_secure_password)
|
15
15
|
end
|
16
16
|
|
17
17
|
# BCrypt hash function can handle maximum 72 bytes, and if we pass
|
18
18
|
# password of length more than 72 bytes it ignores extra characters.
|
19
19
|
# Hence need to put a restriction on password length.
|
20
|
-
MAX_PASSWORD_LENGTH_ALLOWED =
|
20
|
+
MAX_PASSWORD_LENGTH_ALLOWED = BCrypt::Engine::MAX_SECRET_BYTESIZE
|
21
21
|
|
22
22
|
class << self
|
23
23
|
attr_accessor :min_cost # :nodoc:
|
@@ -29,7 +29,15 @@ module OmniAuth
|
|
29
29
|
# This mechanism requires you to have a +XXX_digest+ attribute.
|
30
30
|
# Where +XXX+ is the attribute name of your desired password.
|
31
31
|
#
|
32
|
-
#
|
32
|
+
# For Supported ActiveModel-based ORMs:
|
33
|
+
#
|
34
|
+
# * ActiveRecord
|
35
|
+
# * CouchPotato
|
36
|
+
# * Mongoid
|
37
|
+
# * NoBrainer
|
38
|
+
#
|
39
|
+
# the following validations are added automatically:
|
40
|
+
#
|
33
41
|
# * Password must be present on creation
|
34
42
|
# * Password length should be less than or equal to 72 bytes
|
35
43
|
# * Confirmation of password (using a +XXX_confirmation+ attribute)
|
@@ -39,8 +47,14 @@ module OmniAuth
|
|
39
47
|
# it). When this attribute has a +nil+ value, the validation will not be
|
40
48
|
# triggered.
|
41
49
|
#
|
42
|
-
# For
|
43
|
-
#
|
50
|
+
# For Supported non-ActiveModel-based ORMs:
|
51
|
+
#
|
52
|
+
# * Sequel
|
53
|
+
#
|
54
|
+
# validations are disabled by default.
|
55
|
+
#
|
56
|
+
# It is possible to disable the default validations in any ORM
|
57
|
+
# by passing <tt>validations: false</tt> as an argument.
|
44
58
|
#
|
45
59
|
# Add bcrypt (~> 3.1.7) to Gemfile to use #has_secure_password:
|
46
60
|
#
|
@@ -73,47 +87,60 @@ module OmniAuth
|
|
73
87
|
# This is to avoid ActiveModel (and by extension the entire framework)
|
74
88
|
# being dependent on a binary library.
|
75
89
|
begin
|
76
|
-
require
|
90
|
+
require "bcrypt"
|
77
91
|
rescue LoadError
|
78
|
-
warn
|
92
|
+
warn("You don't have bcrypt installed in your application. Please add it to your Gemfile and run bundle install")
|
79
93
|
raise
|
80
94
|
end
|
81
95
|
|
82
|
-
include
|
96
|
+
include(InstanceMethodsOnActivation.new(attribute))
|
83
97
|
|
84
98
|
if validations
|
85
|
-
|
99
|
+
if !defined?(ActiveModel)
|
100
|
+
warn("[DEPRECATION][omniauth-identity v3.1][w/ Sequel ORM] has_secure_password(validations: true) is default, but incurs dependency on ActiveModel. v4 will default to `has_secure_password(validations: false)`.")
|
101
|
+
begin
|
102
|
+
require "active_model"
|
103
|
+
rescue LoadError
|
104
|
+
warn("You don't have active_model installed in your application. Please add it to your Gemfile and run bundle install")
|
105
|
+
raise
|
106
|
+
end
|
107
|
+
end
|
108
|
+
include(ActiveModel::Validations)
|
86
109
|
|
87
110
|
# This ensures the model has a password by checking whether the password_digest
|
88
111
|
# is present, so that this works with both new and existing records. However,
|
89
112
|
# when there is an error, the message is added to the password attribute instead
|
90
113
|
# so that the error message will make sense to the end-user.
|
91
114
|
validate do |record|
|
92
|
-
record.errors.add(attribute, :blank) unless record.public_send("#{attribute}_digest").present?
|
115
|
+
record.errors.add(attribute, :blank) unless record.public_send(:"#{attribute}_digest").present?
|
93
116
|
end
|
94
117
|
|
95
|
-
validates_length_of
|
96
|
-
validates_confirmation_of
|
118
|
+
validates_length_of(attribute, maximum: MAX_PASSWORD_LENGTH_ALLOWED)
|
119
|
+
validates_confirmation_of(attribute, allow_blank: true)
|
97
120
|
end
|
98
121
|
end
|
99
122
|
end
|
100
123
|
|
101
124
|
class InstanceMethodsOnActivation < Module
|
102
125
|
def initialize(attribute)
|
103
|
-
attr_reader
|
126
|
+
attr_reader(attribute)
|
104
127
|
|
105
|
-
define_method("#{attribute}=") do |unencrypted_password|
|
128
|
+
define_method(:"#{attribute}=") do |unencrypted_password|
|
106
129
|
if unencrypted_password.nil?
|
107
|
-
public_send("#{attribute}_digest=", nil)
|
130
|
+
public_send(:"#{attribute}_digest=", nil)
|
108
131
|
elsif !unencrypted_password.empty?
|
109
|
-
instance_variable_set("@#{attribute}", unencrypted_password)
|
110
|
-
cost = ActiveModel::SecurePassword
|
111
|
-
|
132
|
+
instance_variable_set(:"@#{attribute}", unencrypted_password)
|
133
|
+
cost = if defined?(ActiveModel::SecurePassword)
|
134
|
+
ActiveModel::SecurePassword.min_cost ? BCrypt::Engine::MIN_COST : BCrypt::Engine.cost
|
135
|
+
else
|
136
|
+
BCrypt::Engine.cost
|
137
|
+
end
|
138
|
+
public_send(:"#{attribute}_digest=", BCrypt::Password.create(unencrypted_password, cost: cost))
|
112
139
|
end
|
113
140
|
end
|
114
141
|
|
115
|
-
define_method("#{attribute}_confirmation=") do |unencrypted_password|
|
116
|
-
instance_variable_set("@#{attribute}_confirmation", unencrypted_password)
|
142
|
+
define_method(:"#{attribute}_confirmation=") do |unencrypted_password|
|
143
|
+
instance_variable_set(:"@#{attribute}_confirmation", unencrypted_password)
|
117
144
|
end
|
118
145
|
|
119
146
|
# Returns +self+ if the password is correct, otherwise +false+.
|
@@ -126,12 +153,12 @@ module OmniAuth
|
|
126
153
|
# user.save
|
127
154
|
# user.authenticate_password('notright') # => false
|
128
155
|
# user.authenticate_password('mUc3m00RsqyRe') # => user
|
129
|
-
define_method("authenticate_#{attribute}") do |unencrypted_password|
|
130
|
-
attribute_digest = public_send("#{attribute}_digest")
|
156
|
+
define_method(:"authenticate_#{attribute}") do |unencrypted_password|
|
157
|
+
attribute_digest = public_send(:"#{attribute}_digest")
|
131
158
|
BCrypt::Password.new(attribute_digest).is_password?(unencrypted_password) && self
|
132
159
|
end
|
133
160
|
|
134
|
-
alias_method
|
161
|
+
alias_method(:authenticate, :authenticate_password) if attribute == :password
|
135
162
|
end
|
136
163
|
end
|
137
164
|
end
|
data/lib/omniauth/identity.rb
CHANGED
@@ -1,21 +1,37 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
3
|
+
# TODO[v4]: Remove this deprecation with v4 release.
|
4
|
+
unless defined?(OmniAuth::Identity::Version::VERSION)
|
5
|
+
# external gems
|
6
|
+
require "version_gem"
|
7
|
+
|
8
|
+
# this library's version
|
9
|
+
require "omniauth/identity/version"
|
10
|
+
|
11
|
+
# Ensure version is configured before loading the rest of the library
|
12
|
+
OmniAuth::Identity::Version.class_eval do
|
13
|
+
extend VersionGem::Basic
|
14
|
+
end
|
15
|
+
|
16
|
+
warn "[DEPRECATION][omniauth-identity v3.1] Change `require 'omniauth/identity'` to `require 'omniauth-identity'`. Support for `require 'omniauth/identity'` will be removed in v4."
|
17
|
+
end
|
18
|
+
|
19
|
+
require "omniauth"
|
4
20
|
|
5
21
|
module OmniAuth
|
6
22
|
module Strategies
|
7
|
-
autoload :Identity,
|
23
|
+
autoload :Identity, "omniauth/strategies/identity"
|
8
24
|
end
|
9
25
|
|
10
26
|
module Identity
|
11
|
-
autoload :Model,
|
12
|
-
autoload :SecurePassword,
|
27
|
+
autoload :Model, "omniauth/identity/model"
|
28
|
+
autoload :SecurePassword, "omniauth/identity/secure_password"
|
13
29
|
module Models
|
14
|
-
autoload :ActiveRecord,
|
15
|
-
autoload :Mongoid,
|
16
|
-
autoload :CouchPotatoModule,
|
17
|
-
autoload :NoBrainer,
|
18
|
-
autoload :Sequel,
|
30
|
+
autoload :ActiveRecord, "omniauth/identity/models/active_record"
|
31
|
+
autoload :Mongoid, "omniauth/identity/models/mongoid"
|
32
|
+
autoload :CouchPotatoModule, "omniauth/identity/models/couch_potato"
|
33
|
+
autoload :NoBrainer, "omniauth/identity/models/nobrainer"
|
34
|
+
autoload :Sequel, "omniauth/identity/models/sequel"
|
19
35
|
end
|
20
36
|
end
|
21
37
|
end
|
@@ -19,12 +19,12 @@ module OmniAuth
|
|
19
19
|
option :on_validation, nil # See #registration_phase
|
20
20
|
option :on_registration, nil # See #registration_phase
|
21
21
|
option :on_failed_registration, nil # See #registration_phase
|
22
|
-
option :locate_conditions, ->(req) { {
|
23
|
-
option :create_identity_link_text,
|
24
|
-
option :registration_failure_message,
|
25
|
-
option :validation_failure_message,
|
26
|
-
option :title,
|
27
|
-
option :registration_form_title,
|
22
|
+
option :locate_conditions, ->(req) { {model.auth_key => req.params["auth_key"]} }
|
23
|
+
option :create_identity_link_text, "Create an Identity"
|
24
|
+
option :registration_failure_message, "One or more fields were invalid"
|
25
|
+
option :validation_failure_message, "Validation failed"
|
26
|
+
option :title, "Identity Verification" # Title for Login Form
|
27
|
+
option :registration_form_title, "Register Identity" # Title for Registration Form
|
28
28
|
|
29
29
|
def request_phase
|
30
30
|
if options[:on_login]
|
@@ -71,14 +71,14 @@ module OmniAuth
|
|
71
71
|
|
72
72
|
def registration_phase
|
73
73
|
attributes = (options[:fields] + DEFAULT_REGISTRATION_FIELDS).each_with_object({}) do |k, h|
|
74
|
-
h[k] = request[k.to_s]
|
74
|
+
h[k] = request.params[k.to_s]
|
75
75
|
end
|
76
|
-
if model.respond_to?(:column_names) && model.column_names.include?(
|
77
|
-
attributes.reverse_merge!(provider:
|
76
|
+
if model.respond_to?(:column_names) && model.column_names.include?("provider")
|
77
|
+
attributes.reverse_merge!(provider: "identity")
|
78
78
|
end
|
79
79
|
if validating?
|
80
80
|
@identity = model.new(attributes)
|
81
|
-
env[
|
81
|
+
env["omniauth.identity"] = @identity
|
82
82
|
if valid?
|
83
83
|
@identity.save
|
84
84
|
registration_result
|
@@ -87,7 +87,7 @@ module OmniAuth
|
|
87
87
|
end
|
88
88
|
else
|
89
89
|
@identity = model.create(attributes)
|
90
|
-
env[
|
90
|
+
env["omniauth.identity"] = @identity
|
91
91
|
registration_result
|
92
92
|
end
|
93
93
|
end
|
@@ -96,7 +96,7 @@ module OmniAuth
|
|
96
96
|
info { identity.info }
|
97
97
|
|
98
98
|
def registration_path
|
99
|
-
options[:registration_path] || "#{path_prefix}/#{name}/register"
|
99
|
+
options[:registration_path] || "#{script_name}#{path_prefix}/#{name}/register"
|
100
100
|
end
|
101
101
|
|
102
102
|
def on_registration_path?
|
@@ -104,13 +104,10 @@ module OmniAuth
|
|
104
104
|
end
|
105
105
|
|
106
106
|
def identity
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
conditions = options[:locate_conditions].to_hash
|
112
|
-
end
|
113
|
-
@identity ||= model.authenticate(conditions, request['password'])
|
107
|
+
conditions = options[:locate_conditions]
|
108
|
+
conditions = conditions.is_a?(Proc) ? instance_exec(request, &conditions).to_hash : conditions.to_hash
|
109
|
+
|
110
|
+
@identity ||= model.authenticate(conditions, request.params["password"])
|
114
111
|
end
|
115
112
|
|
116
113
|
def model
|
@@ -122,24 +119,24 @@ module OmniAuth
|
|
122
119
|
def build_omniauth_login_form
|
123
120
|
OmniAuth::Form.build(
|
124
121
|
title: options[:title],
|
125
|
-
url: callback_path
|
122
|
+
url: callback_path,
|
126
123
|
) do |f|
|
127
|
-
f.text_field
|
128
|
-
f.password_field
|
124
|
+
f.text_field("Login", "auth_key")
|
125
|
+
f.password_field("Password", "password")
|
129
126
|
if options[:enable_registration]
|
130
|
-
f.html
|
127
|
+
f.html("<p align='center'><a href='#{registration_path}'>#{options[:create_identity_link_text]}</a></p>")
|
131
128
|
end
|
132
129
|
end
|
133
130
|
end
|
134
131
|
|
135
132
|
def build_omniauth_registration_form(validation_message)
|
136
133
|
OmniAuth::Form.build(title: options[:registration_form_title]) do |f|
|
137
|
-
f.html
|
134
|
+
f.html("<p style='color:red'>#{validation_message}</p>") if validation_message
|
138
135
|
options[:fields].each do |field|
|
139
|
-
f.text_field
|
136
|
+
f.text_field(field.to_s.capitalize, field.to_s)
|
140
137
|
end
|
141
|
-
f.password_field
|
142
|
-
f.password_field
|
138
|
+
f.password_field("Password", "password")
|
139
|
+
f.password_field("Confirm Password", "password_confirmation")
|
143
140
|
end
|
144
141
|
end
|
145
142
|
|
@@ -169,7 +166,7 @@ module OmniAuth
|
|
169
166
|
|
170
167
|
def registration_result
|
171
168
|
if @identity.persisted?
|
172
|
-
env[
|
169
|
+
env["PATH_INFO"] = "#{path_prefix}/#{name}/callback"
|
173
170
|
callback_phase
|
174
171
|
else
|
175
172
|
registration_failure(options[:registration_failure_message])
|
data/lib/omniauth-identity.rb
CHANGED
@@ -1,4 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
|
4
|
-
require
|
3
|
+
# external gems
|
4
|
+
require "version_gem"
|
5
|
+
|
6
|
+
# this library's version
|
7
|
+
require "omniauth/identity/version"
|
8
|
+
|
9
|
+
# Ensure version is configured before loading the rest of the library
|
10
|
+
OmniAuth::Identity::Version.class_eval do
|
11
|
+
extend VersionGem::Basic
|
12
|
+
end
|
13
|
+
|
14
|
+
# this library
|
15
|
+
require "omniauth/identity"
|
data.tar.gz.sig
ADDED
Binary file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-identity
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Peter Boling
|
@@ -9,37 +9,133 @@ authors:
|
|
9
9
|
- Michael Bleigh
|
10
10
|
autorequire:
|
11
11
|
bindir: exe
|
12
|
-
cert_chain:
|
13
|
-
|
12
|
+
cert_chain:
|
13
|
+
- |
|
14
|
+
-----BEGIN CERTIFICATE-----
|
15
|
+
MIIEgDCCAuigAwIBAgIBATANBgkqhkiG9w0BAQsFADBDMRUwEwYDVQQDDAxwZXRl
|
16
|
+
ci5ib2xpbmcxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
|
17
|
+
A2NvbTAeFw0yNDA5MjAwODU4NDJaFw0yNTA5MjAwODU4NDJaMEMxFTATBgNVBAMM
|
18
|
+
DHBldGVyLmJvbGluZzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
|
19
|
+
LGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEAjrxsKObI
|
20
|
+
rFQjBpzvVfqnT6JlF8/pkpgEEjFh7ex3zIerfuHzZvSrx+sRDGxQ8koWWG0Wjx8s
|
21
|
+
wkBZ5dIqvl0g3sWP5asa28u/09opxkQTC1Ao77iYxcBcwoCe/Dpf1m4Q/m6oH0kL
|
22
|
+
2AZVNJQL3UkqAcLS0tsj/s/jAKnVlsaZZE5gQiIIi8HtkvSsajtx+Cq2AxDvcWvV
|
23
|
+
/CliD+pmzYkTjvjwGm8yeyFGGGgrisJMryiZdZlkTwrQSjCzudIKbLeuG8Se4JTD
|
24
|
+
TAcT+rPubr27v1jwmtIjtiot3rf4nof7LHLb122a/0VR7cC7xPLnXw0Cq1BShvoq
|
25
|
+
/GKRdSwMNinTOGkFTK1gKnjN+3iD4zyXU3XO3CXoTr+Ju8fXPN1x4tpOMgbv8dme
|
26
|
+
WbcQMOH9ZjmA5w0bSVRL1c3NhRRpUzrKTNXBEvqOyWjUnintxWKj+cRXx+z+dUgI
|
27
|
+
dL3kj68fcsiTgl75In3C485pnCMmq1eLuVoiy3jkLNOn2lHeLt9ZK63LAgMBAAGj
|
28
|
+
fzB9MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBRhfc+2UaVYd74p
|
29
|
+
yJ1JclGiUYN8+jAhBgNVHREEGjAYgRZwZXRlci5ib2xpbmdAZ21haWwuY29tMCEG
|
30
|
+
A1UdEgQaMBiBFnBldGVyLmJvbGluZ0BnbWFpbC5jb20wDQYJKoZIhvcNAQELBQAD
|
31
|
+
ggGBAA4fLU2+mQ++jBhVM2IeyvQdw1nm+0thkH4Ldv8ZOBm5ZxCPGIMoYliDDzg4
|
32
|
+
4JDFxZR1wR4sdrz/K5tWtEkN23SKzopwbNb1NIQRSLQ7nOoc+4bkuz9xwKinmIvF
|
33
|
+
D+5qsl2S27WLKFreMDtGoh0CREIMBUxU4rGTh0gtzmweGR+fnOShg4Jo0kxrjU5h
|
34
|
+
uYk/uVE+bn/jOEGs43GvKXZLyshpBrZjQ+ArbvxDht5t35zbSxerbUxUPZUbXUCW
|
35
|
+
tTyh38a9UYjAAHvnh6Y4Fi9wd4/pGNsektrzB3z/zlVj4YF2TMLX9XfNJWEGRGpO
|
36
|
+
sSkLYdtEX1WQAmuZtActVW2cL3HdQaRbiv7VbfpA0eSk0ZdZHvBCl516ZZu10uX6
|
37
|
+
82W1mg6fuezdpeBOiXwrEbZSt/oGiF4V511F6nd55p0okwHc/6nS10F/3aKJ4gwC
|
38
|
+
I5o+DRfXQHqKucx1ldFHvI2rE/kSCWqGTHN2eyu1sqCPeOoIMxrltJhaejKPkxqj
|
39
|
+
zaF9Og==
|
40
|
+
-----END CERTIFICATE-----
|
41
|
+
date: 2024-11-18 00:00:00.000000000 Z
|
14
42
|
dependencies:
|
15
43
|
- !ruby/object:Gem::Dependency
|
16
44
|
name: bcrypt
|
45
|
+
requirement: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '3.1'
|
50
|
+
type: :runtime
|
51
|
+
prerelease: false
|
52
|
+
version_requirements: !ruby/object:Gem::Requirement
|
53
|
+
requirements:
|
54
|
+
- - "~>"
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
version: '3.1'
|
57
|
+
- !ruby/object:Gem::Dependency
|
58
|
+
name: omniauth
|
17
59
|
requirement: !ruby/object:Gem::Requirement
|
18
60
|
requirements:
|
19
61
|
- - ">="
|
20
62
|
- !ruby/object:Gem::Version
|
21
|
-
version: '
|
63
|
+
version: '1'
|
22
64
|
type: :runtime
|
23
65
|
prerelease: false
|
24
66
|
version_requirements: !ruby/object:Gem::Requirement
|
25
67
|
requirements:
|
26
68
|
- - ">="
|
27
69
|
- !ruby/object:Gem::Version
|
28
|
-
version: '
|
70
|
+
version: '1'
|
29
71
|
- !ruby/object:Gem::Dependency
|
30
|
-
name:
|
72
|
+
name: version_gem
|
31
73
|
requirement: !ruby/object:Gem::Requirement
|
32
74
|
requirements:
|
75
|
+
- - "~>"
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '1.1'
|
33
78
|
- - ">="
|
34
79
|
- !ruby/object:Gem::Version
|
35
|
-
version:
|
80
|
+
version: 1.1.4
|
36
81
|
type: :runtime
|
37
82
|
prerelease: false
|
38
83
|
version_requirements: !ruby/object:Gem::Requirement
|
39
84
|
requirements:
|
85
|
+
- - "~>"
|
86
|
+
- !ruby/object:Gem::Version
|
87
|
+
version: '1.1'
|
88
|
+
- - ">="
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 1.1.4
|
91
|
+
- !ruby/object:Gem::Dependency
|
92
|
+
name: activerecord
|
93
|
+
requirement: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ">="
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: '5'
|
98
|
+
type: :development
|
99
|
+
prerelease: false
|
100
|
+
version_requirements: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ">="
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: '5'
|
105
|
+
- !ruby/object:Gem::Dependency
|
106
|
+
name: anonymous_active_record
|
107
|
+
requirement: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - "~>"
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: '1.0'
|
112
|
+
- - ">="
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: 1.0.9
|
115
|
+
type: :development
|
116
|
+
prerelease: false
|
117
|
+
version_requirements: !ruby/object:Gem::Requirement
|
118
|
+
requirements:
|
119
|
+
- - "~>"
|
120
|
+
- !ruby/object:Gem::Version
|
121
|
+
version: '1.0'
|
40
122
|
- - ">="
|
41
123
|
- !ruby/object:Gem::Version
|
42
|
-
version:
|
124
|
+
version: 1.0.9
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: appraisal
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - "~>"
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '2.5'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - "~>"
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '2.5'
|
43
139
|
- !ruby/object:Gem::Dependency
|
44
140
|
name: rack-test
|
45
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -89,6 +185,9 @@ dependencies:
|
|
89
185
|
- - "~>"
|
90
186
|
- !ruby/object:Gem::Version
|
91
187
|
version: '1.0'
|
188
|
+
- - ">="
|
189
|
+
- !ruby/object:Gem::Version
|
190
|
+
version: 1.0.6
|
92
191
|
type: :development
|
93
192
|
prerelease: false
|
94
193
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -96,20 +195,23 @@ dependencies:
|
|
96
195
|
- - "~>"
|
97
196
|
- !ruby/object:Gem::Version
|
98
197
|
version: '1.0'
|
198
|
+
- - ">="
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: 1.0.6
|
99
201
|
- !ruby/object:Gem::Dependency
|
100
202
|
name: sqlite3
|
101
203
|
requirement: !ruby/object:Gem::Requirement
|
102
204
|
requirements:
|
103
|
-
- - "
|
205
|
+
- - ">="
|
104
206
|
- !ruby/object:Gem::Version
|
105
|
-
version: '1
|
207
|
+
version: '1'
|
106
208
|
type: :development
|
107
209
|
prerelease: false
|
108
210
|
version_requirements: !ruby/object:Gem::Requirement
|
109
211
|
requirements:
|
110
|
-
- - "
|
212
|
+
- - ">="
|
111
213
|
- !ruby/object:Gem::Version
|
112
|
-
version: '1
|
214
|
+
version: '1'
|
113
215
|
description: Traditional username/password based authentication system for OmniAuth
|
114
216
|
email:
|
115
217
|
executables: []
|
@@ -121,7 +223,6 @@ files:
|
|
121
223
|
- LICENSE
|
122
224
|
- README.md
|
123
225
|
- lib/omniauth-identity.rb
|
124
|
-
- lib/omniauth-identity/version.rb
|
125
226
|
- lib/omniauth/identity.rb
|
126
227
|
- lib/omniauth/identity/model.rb
|
127
228
|
- lib/omniauth/identity/models/active_record.rb
|
@@ -130,23 +231,14 @@ files:
|
|
130
231
|
- lib/omniauth/identity/models/nobrainer.rb
|
131
232
|
- lib/omniauth/identity/models/sequel.rb
|
132
233
|
- lib/omniauth/identity/secure_password.rb
|
234
|
+
- lib/omniauth/identity/version.rb
|
133
235
|
- lib/omniauth/strategies/identity.rb
|
134
|
-
|
135
|
-
- spec/omniauth/identity/models/active_record_spec.rb
|
136
|
-
- spec/omniauth/identity/models/sequel_spec.rb
|
137
|
-
- spec/omniauth/identity/secure_password_spec.rb
|
138
|
-
- spec/omniauth/strategies/identity_spec.rb
|
139
|
-
- spec/spec_helper.rb
|
140
|
-
- spec/support/shared_contexts/instance_with_instance_methods.rb
|
141
|
-
- spec/support/shared_contexts/model_with_class_methods.rb
|
142
|
-
- spec/support/shared_contexts/persistable_model.rb
|
143
|
-
homepage: http://github.com/omniauth/omniauth-identity
|
236
|
+
homepage: https://github.com/omniauth/omniauth-identity
|
144
237
|
licenses:
|
145
238
|
- MIT
|
146
239
|
metadata: {}
|
147
240
|
post_install_message:
|
148
|
-
rdoc_options:
|
149
|
-
- "--charset=UTF-8"
|
241
|
+
rdoc_options: []
|
150
242
|
require_paths:
|
151
243
|
- lib
|
152
244
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -158,19 +250,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
158
250
|
requirements:
|
159
251
|
- - ">="
|
160
252
|
- !ruby/object:Gem::Version
|
161
|
-
version:
|
253
|
+
version: '0'
|
162
254
|
requirements: []
|
163
|
-
rubygems_version: 3.
|
255
|
+
rubygems_version: 3.5.23
|
164
256
|
signing_key:
|
165
257
|
specification_version: 4
|
166
|
-
summary:
|
167
|
-
test_files:
|
168
|
-
- spec/spec_helper.rb
|
169
|
-
- spec/support/shared_contexts/persistable_model.rb
|
170
|
-
- spec/support/shared_contexts/model_with_class_methods.rb
|
171
|
-
- spec/support/shared_contexts/instance_with_instance_methods.rb
|
172
|
-
- spec/omniauth/identity/models/active_record_spec.rb
|
173
|
-
- spec/omniauth/identity/models/sequel_spec.rb
|
174
|
-
- spec/omniauth/identity/secure_password_spec.rb
|
175
|
-
- spec/omniauth/identity/model_spec.rb
|
176
|
-
- spec/omniauth/strategies/identity_spec.rb
|
258
|
+
summary: ''
|
259
|
+
test_files: []
|
metadata.gz.sig
ADDED
Binary file
|