authlogic_rpx 1.1.1 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG.rdoc +45 -38
- data/MIT-LICENSE +20 -20
- data/Manifest +37 -37
- data/README.rdoc +751 -747
- data/Rakefile +54 -47
- data/authlogic_rpx.gemspec +101 -38
- data/generators/add_authlogic_rpx_migration/USAGE +18 -18
- data/generators/add_authlogic_rpx_migration/add_authlogic_rpx_migration_generator.rb +44 -44
- data/generators/add_authlogic_rpx_migration/templates/migration_internal_mapping.rb +34 -34
- data/generators/add_authlogic_rpx_migration/templates/migration_no_mapping.rb +29 -29
- data/lib/authlogic_rpx.rb +8 -8
- data/lib/authlogic_rpx/acts_as_authentic.rb +297 -281
- data/lib/authlogic_rpx/helper.rb +53 -43
- data/lib/authlogic_rpx/rpx_identifier.rb +4 -5
- data/lib/authlogic_rpx/session.rb +224 -218
- data/lib/authlogic_rpx/version.rb +50 -50
- data/test/fixtures/rpxresponses.yml +20 -20
- data/test/fixtures/users.yml +19 -19
- data/test/integration/basic_authentication_and_registration_test.rb +52 -52
- data/test/integration/internal_mapping/basic_authentication_and_registration_test.rb +3 -3
- data/test/integration/internal_mapping/settings_test.rb +9 -9
- data/test/integration/no_mapping/basic_authentication_and_registration_test.rb +3 -3
- data/test/integration/no_mapping/settings_test.rb +9 -9
- data/test/libs/ext_test_unit.rb +30 -30
- data/test/libs/mock_rpx_now.rb +33 -33
- data/test/libs/rails_trickery.rb +40 -40
- data/test/libs/rpxresponse.rb +2 -2
- data/test/libs/user.rb +2 -2
- data/test/libs/user_session.rb +2 -2
- data/test/test_helper.rb +84 -86
- data/test/test_internal_mapping_helper.rb +93 -95
- data/test/unit/acts_as_authentic_settings_test.rb +41 -41
- data/test/unit/session_settings_test.rb +37 -37
- data/test/unit/session_validation_test.rb +15 -15
- data/test/unit/verify_rpx_mock_test.rb +28 -28
- metadata +66 -32
@@ -1,51 +1,51 @@
|
|
1
|
-
module AuthlogicRpx
|
2
|
-
# A class for describing the current version of a library. The version
|
3
|
-
# consists of three parts: the +major+ number, the +minor+ number, and the
|
4
|
-
# +tiny+ (or +patch+) number.
|
5
|
-
class Version
|
6
|
-
include Comparable
|
7
|
-
|
8
|
-
# A convenience method for instantiating a new Version instance with the
|
9
|
-
# given +major+, +minor+, and +tiny+ components.
|
10
|
-
def self.[](major, minor, tiny)
|
11
|
-
new(major, minor, tiny)
|
12
|
-
end
|
13
|
-
|
14
|
-
attr_reader :major, :minor, :tiny
|
15
|
-
|
16
|
-
# Create a new Version object with the given components.
|
17
|
-
def initialize(major, minor, tiny)
|
18
|
-
@major, @minor, @tiny = major, minor, tiny
|
19
|
-
end
|
20
|
-
|
21
|
-
# Compare this version to the given +version+ object.
|
22
|
-
def <=>(version)
|
23
|
-
to_i <=> version.to_i
|
24
|
-
end
|
25
|
-
|
26
|
-
# Converts this version object to a string, where each of the three
|
27
|
-
# version components are joined by the '.' character. E.g., 2.0.0.
|
28
|
-
def to_s
|
29
|
-
@to_s ||= [@major, @minor, @tiny].join(".")
|
30
|
-
end
|
31
|
-
|
32
|
-
# Converts this version to a canonical integer that may be compared
|
33
|
-
# against other version objects.
|
34
|
-
def to_i
|
35
|
-
@to_i ||= @major * 1_000_000 + @minor * 1_000 + @tiny
|
36
|
-
end
|
37
|
-
|
38
|
-
def to_a
|
39
|
-
[@major, @minor, @tiny]
|
40
|
-
end
|
41
|
-
|
42
|
-
MAJOR = 1
|
43
|
-
MINOR =
|
44
|
-
TINY =
|
45
|
-
|
46
|
-
# The current version as a Version instance
|
47
|
-
CURRENT = new(MAJOR, MINOR, TINY)
|
48
|
-
# The current version as a String
|
49
|
-
STRING = CURRENT.to_s
|
50
|
-
end
|
1
|
+
module AuthlogicRpx
|
2
|
+
# A class for describing the current version of a library. The version
|
3
|
+
# consists of three parts: the +major+ number, the +minor+ number, and the
|
4
|
+
# +tiny+ (or +patch+) number.
|
5
|
+
class Version
|
6
|
+
include Comparable
|
7
|
+
|
8
|
+
# A convenience method for instantiating a new Version instance with the
|
9
|
+
# given +major+, +minor+, and +tiny+ components.
|
10
|
+
def self.[](major, minor, tiny)
|
11
|
+
new(major, minor, tiny)
|
12
|
+
end
|
13
|
+
|
14
|
+
attr_reader :major, :minor, :tiny
|
15
|
+
|
16
|
+
# Create a new Version object with the given components.
|
17
|
+
def initialize(major, minor, tiny)
|
18
|
+
@major, @minor, @tiny = major, minor, tiny
|
19
|
+
end
|
20
|
+
|
21
|
+
# Compare this version to the given +version+ object.
|
22
|
+
def <=>(version)
|
23
|
+
to_i <=> version.to_i
|
24
|
+
end
|
25
|
+
|
26
|
+
# Converts this version object to a string, where each of the three
|
27
|
+
# version components are joined by the '.' character. E.g., 2.0.0.
|
28
|
+
def to_s
|
29
|
+
@to_s ||= [@major, @minor, @tiny].join(".")
|
30
|
+
end
|
31
|
+
|
32
|
+
# Converts this version to a canonical integer that may be compared
|
33
|
+
# against other version objects.
|
34
|
+
def to_i
|
35
|
+
@to_i ||= @major * 1_000_000 + @minor * 1_000 + @tiny
|
36
|
+
end
|
37
|
+
|
38
|
+
def to_a
|
39
|
+
[@major, @minor, @tiny]
|
40
|
+
end
|
41
|
+
|
42
|
+
MAJOR = 1
|
43
|
+
MINOR = 2
|
44
|
+
TINY = 0
|
45
|
+
|
46
|
+
# The current version as a Version instance
|
47
|
+
CURRENT = new(MAJOR, MINOR, TINY)
|
48
|
+
# The current version as a String
|
49
|
+
STRING = CURRENT.to_s
|
50
|
+
end
|
51
51
|
end
|
@@ -1,20 +1,20 @@
|
|
1
|
-
valid_rpx_auth_user_one:
|
2
|
-
identifier : http://provider.one/valid_rpx_auth_user_one
|
3
|
-
provider_name: provider.one
|
4
|
-
username: valid_rpx_auth_user_one
|
5
|
-
verified_email: valid_rpx_auth_user_one@provider.one
|
6
|
-
display_name: valid rpx auth user one
|
7
|
-
|
8
|
-
valid_rpx_auth_user_two:
|
9
|
-
identifier : http://provider.one/valid_rpx_auth_user_two
|
10
|
-
provider_name: provider.one
|
11
|
-
username: valid_rpx_auth_user_two
|
12
|
-
verified_email: valid_rpx_auth_user_two@provider.one
|
13
|
-
display_name: valid rpx auth user two
|
14
|
-
|
15
|
-
unregistered_rpx_auth_user_one:
|
16
|
-
identifier : http://provider.one/unregistered_rpx_auth_user_one
|
17
|
-
provider_name: provider.one
|
18
|
-
username: unregistered_rpx_auth_user_one
|
19
|
-
verified_email: unregistered_rpx_auth_user_one@provider.one
|
20
|
-
display_name: unregistered rpx auth user one
|
1
|
+
valid_rpx_auth_user_one:
|
2
|
+
identifier : http://provider.one/valid_rpx_auth_user_one
|
3
|
+
provider_name: provider.one
|
4
|
+
username: valid_rpx_auth_user_one
|
5
|
+
verified_email: valid_rpx_auth_user_one@provider.one
|
6
|
+
display_name: valid rpx auth user one
|
7
|
+
|
8
|
+
valid_rpx_auth_user_two:
|
9
|
+
identifier : http://provider.one/valid_rpx_auth_user_two
|
10
|
+
provider_name: provider.one
|
11
|
+
username: valid_rpx_auth_user_two
|
12
|
+
verified_email: valid_rpx_auth_user_two@provider.one
|
13
|
+
display_name: valid rpx auth user two
|
14
|
+
|
15
|
+
unregistered_rpx_auth_user_one:
|
16
|
+
identifier : http://provider.one/unregistered_rpx_auth_user_one
|
17
|
+
provider_name: provider.one
|
18
|
+
username: unregistered_rpx_auth_user_one
|
19
|
+
verified_email: unregistered_rpx_auth_user_one@provider.one
|
20
|
+
display_name: unregistered rpx auth user one
|
data/test/fixtures/users.yml
CHANGED
@@ -1,20 +1,20 @@
|
|
1
|
-
valid_rpx_auth_user_one:
|
2
|
-
login: valid_rpx_auth_user_one
|
3
|
-
email: valid_rpx_auth_user_one@provider.one
|
4
|
-
persistence_token: 6cde0674657a8a313ce952df979de2830309aa4c11ca65805dd00bfdc65dbcc2f5e36718660a1d2e68c1a08c276d996763985d2f06fd3d076eb7bc4d97b1e317
|
5
|
-
single_access_token: <%= Authlogic::Random.friendly_token %>
|
6
|
-
perishable_token: <%= Authlogic::Random.friendly_token %>
|
7
|
-
rpx_identifier : http://provider.one/valid_rpx_auth_user_one
|
8
|
-
|
9
|
-
valid_rpx_auth_user_two:
|
10
|
-
login: valid_rpx_auth_user_two
|
11
|
-
email: valid_rpx_auth_user_two@provider.one
|
12
|
-
persistence_token: 6cde0674657a8a313ce952df979de2830309aa4c11ca65805dd00bfdc65dbcc2f5e36718660a1d2e68c1a08c276d996763985d2f06fd3d076eb7bc4d97b1e317
|
13
|
-
single_access_token: <%= Authlogic::Random.friendly_token %>
|
14
|
-
perishable_token: <%= Authlogic::Random.friendly_token %>
|
15
|
-
rpx_identifier : http://provider.one/valid_rpx_auth_user_two
|
16
|
-
|
17
|
-
invalid_rpx_auth_user_one:
|
18
|
-
login: invalid_rpx_auth_user_one
|
19
|
-
|
1
|
+
valid_rpx_auth_user_one:
|
2
|
+
login: valid_rpx_auth_user_one
|
3
|
+
email: valid_rpx_auth_user_one@provider.one
|
4
|
+
persistence_token: 6cde0674657a8a313ce952df979de2830309aa4c11ca65805dd00bfdc65dbcc2f5e36718660a1d2e68c1a08c276d996763985d2f06fd3d076eb7bc4d97b1e317
|
5
|
+
single_access_token: <%= Authlogic::Random.friendly_token %>
|
6
|
+
perishable_token: <%= Authlogic::Random.friendly_token %>
|
7
|
+
rpx_identifier : http://provider.one/valid_rpx_auth_user_one
|
8
|
+
|
9
|
+
valid_rpx_auth_user_two:
|
10
|
+
login: valid_rpx_auth_user_two
|
11
|
+
email: valid_rpx_auth_user_two@provider.one
|
12
|
+
persistence_token: 6cde0674657a8a313ce952df979de2830309aa4c11ca65805dd00bfdc65dbcc2f5e36718660a1d2e68c1a08c276d996763985d2f06fd3d076eb7bc4d97b1e317
|
13
|
+
single_access_token: <%= Authlogic::Random.friendly_token %>
|
14
|
+
perishable_token: <%= Authlogic::Random.friendly_token %>
|
15
|
+
rpx_identifier : http://provider.one/valid_rpx_auth_user_two
|
16
|
+
|
17
|
+
invalid_rpx_auth_user_one:
|
18
|
+
login: invalid_rpx_auth_user_one
|
19
|
+
|
20
20
|
|
@@ -1,53 +1,53 @@
|
|
1
|
-
# requires test_helper to be loaded first
|
2
|
-
|
3
|
-
class BasicAuthenticationAndRegistrationTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
must "authenticate valid existing user" do
|
6
|
-
test_user = users(:valid_rpx_auth_user_one)
|
7
|
-
controller.params[:token] = test_user.login
|
8
|
-
session = UserSession.new
|
9
|
-
assert_true session.save, "should be a valid session"
|
10
|
-
assert_false session.new_registration?, "should not be a new registration"
|
11
|
-
assert_true session.registration_complete?, "registration should be complete"
|
12
|
-
assert_equal test_user, session.record
|
13
|
-
end
|
14
|
-
|
15
|
-
must "do not authenticate invalidate non-existent user" do
|
16
|
-
controller.params[:token] = ''
|
17
|
-
session = UserSession.new
|
18
|
-
assert_false session.save, "should not be a valid session"
|
19
|
-
end
|
20
|
-
|
21
|
-
|
22
|
-
must "auto-register an unregistered user" do
|
23
|
-
# enforce Authlogic settings required for test
|
24
|
-
UserSession.auto_register true
|
25
|
-
User.account_merge_enabled false
|
26
|
-
User.account_mapping_mode :none
|
27
|
-
|
28
|
-
# get response template. set the controller token (used by RPX mock to match mock response)
|
29
|
-
test_user = rpxresponses(:unregistered_rpx_auth_user_one)
|
30
|
-
controller.params[:token] = test_user.username
|
31
|
-
|
32
|
-
session = UserSession.new
|
33
|
-
assert_true session.save, "should be a valid session"
|
34
|
-
assert_true session.new_registration?, "should be a new registration"
|
35
|
-
assert_true session.registration_complete?, "registration should be complete"
|
36
|
-
end
|
37
|
-
|
38
|
-
|
39
|
-
must "auto-register disabled for an unregistered user" do
|
40
|
-
# enforce Authlogic settings required for test
|
41
|
-
UserSession.auto_register false
|
42
|
-
User.account_merge_enabled false
|
43
|
-
User.account_mapping_mode :none
|
44
|
-
|
45
|
-
# get response template. set the controller token (used by RPX mock to match mock response)
|
46
|
-
test_user = rpxresponses(:unregistered_rpx_auth_user_one)
|
47
|
-
controller.params[:token] = test_user.username
|
48
|
-
|
49
|
-
session = UserSession.new
|
50
|
-
assert_false session.save, "should not be a valid session"
|
51
|
-
end
|
52
|
-
|
1
|
+
# requires test_helper to be loaded first
|
2
|
+
|
3
|
+
class BasicAuthenticationAndRegistrationTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
must "authenticate valid existing user" do
|
6
|
+
test_user = users(:valid_rpx_auth_user_one)
|
7
|
+
controller.params[:token] = test_user.login
|
8
|
+
session = UserSession.new
|
9
|
+
assert_true session.save, "should be a valid session"
|
10
|
+
assert_false session.new_registration?, "should not be a new registration"
|
11
|
+
assert_true session.registration_complete?, "registration should be complete"
|
12
|
+
assert_equal test_user, session.record
|
13
|
+
end
|
14
|
+
|
15
|
+
must "do not authenticate invalidate non-existent user" do
|
16
|
+
controller.params[:token] = ''
|
17
|
+
session = UserSession.new
|
18
|
+
assert_false session.save, "should not be a valid session"
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
must "auto-register an unregistered user" do
|
23
|
+
# enforce Authlogic settings required for test
|
24
|
+
UserSession.auto_register true
|
25
|
+
User.account_merge_enabled false
|
26
|
+
User.account_mapping_mode :none
|
27
|
+
|
28
|
+
# get response template. set the controller token (used by RPX mock to match mock response)
|
29
|
+
test_user = rpxresponses(:unregistered_rpx_auth_user_one)
|
30
|
+
controller.params[:token] = test_user.username
|
31
|
+
|
32
|
+
session = UserSession.new
|
33
|
+
assert_true session.save, "should be a valid session"
|
34
|
+
assert_true session.new_registration?, "should be a new registration"
|
35
|
+
assert_true session.registration_complete?, "registration should be complete"
|
36
|
+
end
|
37
|
+
|
38
|
+
|
39
|
+
must "auto-register disabled for an unregistered user" do
|
40
|
+
# enforce Authlogic settings required for test
|
41
|
+
UserSession.auto_register false
|
42
|
+
User.account_merge_enabled false
|
43
|
+
User.account_mapping_mode :none
|
44
|
+
|
45
|
+
# get response template. set the controller token (used by RPX mock to match mock response)
|
46
|
+
test_user = rpxresponses(:unregistered_rpx_auth_user_one)
|
47
|
+
controller.params[:token] = test_user.username
|
48
|
+
|
49
|
+
session = UserSession.new
|
50
|
+
assert_false session.save, "should not be a valid session"
|
51
|
+
end
|
52
|
+
|
53
53
|
end
|
@@ -1,3 +1,3 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../test_internal_mapping_helper.rb'
|
2
|
-
require File.dirname(__FILE__) + '/../basic_authentication_and_registration_test.rb'
|
3
|
-
|
1
|
+
require File.dirname(__FILE__) + '/../../test_internal_mapping_helper.rb'
|
2
|
+
require File.dirname(__FILE__) + '/../basic_authentication_and_registration_test.rb'
|
3
|
+
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../test_internal_mapping_helper.rb'
|
2
|
-
|
3
|
-
class SettingsTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
must "account_mapping_mode :auto should resolve to :internal" do
|
6
|
-
assert_equal :auto, User.account_mapping_mode
|
7
|
-
assert_equal :internal, User.account_mapping_mode_used
|
8
|
-
end
|
9
|
-
|
1
|
+
require File.dirname(__FILE__) + '/../../test_internal_mapping_helper.rb'
|
2
|
+
|
3
|
+
class SettingsTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
must "account_mapping_mode :auto should resolve to :internal" do
|
6
|
+
assert_equal :auto, User.account_mapping_mode
|
7
|
+
assert_equal :internal, User.account_mapping_mode_used
|
8
|
+
end
|
9
|
+
|
10
10
|
end
|
@@ -1,3 +1,3 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../test_helper.rb'
|
2
|
-
require File.dirname(__FILE__) + '/../basic_authentication_and_registration_test.rb'
|
3
|
-
|
1
|
+
require File.dirname(__FILE__) + '/../../test_helper.rb'
|
2
|
+
require File.dirname(__FILE__) + '/../basic_authentication_and_registration_test.rb'
|
3
|
+
|
@@ -1,10 +1,10 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/../../test_helper.rb'
|
2
|
-
|
3
|
-
class SettingsTest < ActiveSupport::TestCase
|
4
|
-
|
5
|
-
must "account_mapping_mode :auto should resolve to :none" do
|
6
|
-
assert_equal :auto, User.account_mapping_mode
|
7
|
-
assert_equal :none, User.account_mapping_mode_used
|
8
|
-
end
|
9
|
-
|
1
|
+
require File.dirname(__FILE__) + '/../../test_helper.rb'
|
2
|
+
|
3
|
+
class SettingsTest < ActiveSupport::TestCase
|
4
|
+
|
5
|
+
must "account_mapping_mode :auto should resolve to :none" do
|
6
|
+
assert_equal :auto, User.account_mapping_mode
|
7
|
+
assert_equal :none, User.account_mapping_mode_used
|
8
|
+
end
|
9
|
+
|
10
10
|
end
|
data/test/libs/ext_test_unit.rb
CHANGED
@@ -1,30 +1,30 @@
|
|
1
|
-
module Test::Unit
|
2
|
-
|
3
|
-
class TestCase
|
4
|
-
|
5
|
-
def self.must(name, &block)
|
6
|
-
test_name = "test_#{name.gsub(/\s+/,'_')}".to_sym
|
7
|
-
defined = instance_method(test_name) rescue false
|
8
|
-
raise "#{test_name} is already defined in #{self}" if defined
|
9
|
-
if block_given?
|
10
|
-
define_method(test_name, &block)
|
11
|
-
else
|
12
|
-
define_method(test_name) do
|
13
|
-
flunk "No implementation provided for #{name}"
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
|
22
|
-
module Test::Unit::Assertions
|
23
|
-
def assert_false(object, message="")
|
24
|
-
assert_equal(false, object, message)
|
25
|
-
end
|
26
|
-
def assert_true(object, message="")
|
27
|
-
assert_equal(true, object, message)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
|
1
|
+
module Test::Unit
|
2
|
+
|
3
|
+
class TestCase
|
4
|
+
|
5
|
+
def self.must(name, &block)
|
6
|
+
test_name = "test_#{name.gsub(/\s+/,'_')}".to_sym
|
7
|
+
defined = instance_method(test_name) rescue false
|
8
|
+
raise "#{test_name} is already defined in #{self}" if defined
|
9
|
+
if block_given?
|
10
|
+
define_method(test_name, &block)
|
11
|
+
else
|
12
|
+
define_method(test_name) do
|
13
|
+
flunk "No implementation provided for #{name}"
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
|
22
|
+
module Test::Unit::Assertions
|
23
|
+
def assert_false(object, message="")
|
24
|
+
assert_equal(false, object, message)
|
25
|
+
end
|
26
|
+
def assert_true(object, message="")
|
27
|
+
assert_equal(true, object, message)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
data/test/libs/mock_rpx_now.rb
CHANGED
@@ -1,34 +1,34 @@
|
|
1
|
-
require File.dirname(__FILE__) + '/rpxresponse.rb'
|
2
|
-
|
3
|
-
module RPXNow
|
4
|
-
|
5
|
-
def self.user_data(token, options={})
|
6
|
-
data = get_test_data(token)
|
7
|
-
if block_given? then yield(data) else parse_user_data(data) end
|
8
|
-
end
|
9
|
-
|
10
|
-
def self.parse_user_data(data)
|
11
|
-
data
|
12
|
-
end
|
13
|
-
|
14
|
-
def self.get_test_data(token)
|
15
|
-
|
16
|
-
response = Rpxresponse.find_by_username(token)
|
17
|
-
if response
|
18
|
-
data = {}
|
19
|
-
data['profile'] = {}
|
20
|
-
data['profile']['identifier'] = response.identifier
|
21
|
-
data['profile']['providerName'] = response.provider_name
|
22
|
-
data['profile']['preferredUsername'] = response.username
|
23
|
-
data['profile']['email'] = response.verified_email
|
24
|
-
|
25
|
-
data[:identifier] = data['profile']['identifier']
|
26
|
-
data[:providerName] = data['profile']['providerName']
|
27
|
-
data[:email] = response.verified_email
|
28
|
-
data[:username] = data['profile']['preferredUsername']
|
29
|
-
data[:name] = response.display_name
|
30
|
-
end
|
31
|
-
|
32
|
-
data
|
33
|
-
end
|
1
|
+
require File.dirname(__FILE__) + '/rpxresponse.rb'
|
2
|
+
|
3
|
+
module RPXNow
|
4
|
+
|
5
|
+
def self.user_data(token, options={})
|
6
|
+
data = get_test_data(token)
|
7
|
+
if block_given? then yield(data) else parse_user_data(data) end
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.parse_user_data(data)
|
11
|
+
data
|
12
|
+
end
|
13
|
+
|
14
|
+
def self.get_test_data(token)
|
15
|
+
|
16
|
+
response = Rpxresponse.find_by_username(token)
|
17
|
+
if response
|
18
|
+
data = {}
|
19
|
+
data['profile'] = {}
|
20
|
+
data['profile']['identifier'] = response.identifier
|
21
|
+
data['profile']['providerName'] = response.provider_name
|
22
|
+
data['profile']['preferredUsername'] = response.username
|
23
|
+
data['profile']['email'] = response.verified_email
|
24
|
+
|
25
|
+
data[:identifier] = data['profile']['identifier']
|
26
|
+
data[:providerName] = data['profile']['providerName']
|
27
|
+
data[:email] = response.verified_email
|
28
|
+
data[:username] = data['profile']['preferredUsername']
|
29
|
+
data[:name] = response.display_name
|
30
|
+
end
|
31
|
+
|
32
|
+
data
|
33
|
+
end
|
34
34
|
end
|