authing_ruby 1.0.6 → 1.1.1

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.
Files changed (125) hide show
  1. checksums.yaml +4 -4
  2. data/lib/authing_ruby/GraphQLAPI.rb +14 -3
  3. data/lib/authing_ruby/authentication/AuthenticationClient.rb +71 -60
  4. data/lib/authing_ruby/common/GraphqlClient.rb +42 -4
  5. data/lib/authing_ruby/graphql/mutations/updatePhone.gql +63 -0
  6. data/lib/authing_ruby/management/ManagementClient.rb +1 -1
  7. data/lib/authing_ruby/management/ManagementTokenProvider.rb +7 -3
  8. data/lib/authing_ruby/test/js_sdk_test/2.registerByPhoneCode.js +130 -0
  9. data/lib/authing_ruby/test/js_sdk_test/3.sendSMS.js +23 -0
  10. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/browser/index.min.js +1 -1
  11. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/AuthenticationClient.d.ts +41 -1
  12. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/AuthenticationClient.js +60 -2
  13. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/QrCodeAuthenticationClient.js +6 -3
  14. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/SocialAuthenticationClient.d.ts +4 -0
  15. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/SocialAuthenticationClient.js +6 -5
  16. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/types.d.ts +10 -0
  17. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/types.js +1 -1
  18. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/common/GraphqlClient.js +10 -8
  19. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/common/HttpClient.js +17 -15
  20. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/graphqlapi.d.ts +12 -1
  21. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/graphqlapi.js +192 -2
  22. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/ApplicationsManagementClient.js +5 -3
  23. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/GroupsManagementClient.d.ts +5 -1
  24. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/GroupsManagementClient.js +29 -11
  25. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/ManagementClient.d.ts +5 -0
  26. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/ManagementClient.js +15 -2
  27. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/OrgManagementClient.d.ts +34 -1
  28. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/OrgManagementClient.js +71 -3
  29. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/RolesManagementClient.d.ts +6 -1
  30. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/RolesManagementClient.js +45 -10
  31. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/UsersManagementClient.d.ts +34 -3
  32. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/UsersManagementClient.js +189 -52
  33. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/types.d.ts +10 -0
  34. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/types.js +1 -1
  35. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/utils.d.ts +1 -1
  36. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/utils.js +1 -1
  37. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/version.d.ts +1 -1
  38. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/version.js +2 -2
  39. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/types/graphql.v2.d.ts +661 -32
  40. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/types/graphql.v2.js +30 -19
  41. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/AuthenticationClient.d.ts +41 -1
  42. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/AuthenticationClient.js +61 -3
  43. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/QrCodeAuthenticationClient.js +6 -3
  44. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/SocialAuthenticationClient.d.ts +4 -0
  45. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/SocialAuthenticationClient.js +6 -5
  46. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/types.d.ts +10 -0
  47. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/types.js +1 -1
  48. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/common/GraphqlClient.js +10 -8
  49. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/common/HttpClient.js +17 -15
  50. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/graphqlapi.d.ts +12 -1
  51. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/graphqlapi.js +192 -2
  52. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/ApplicationsManagementClient.js +5 -3
  53. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/GroupsManagementClient.d.ts +5 -1
  54. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/GroupsManagementClient.js +30 -12
  55. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/ManagementClient.d.ts +5 -0
  56. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/ManagementClient.js +15 -2
  57. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/OrgManagementClient.d.ts +34 -1
  58. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/OrgManagementClient.js +72 -4
  59. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/RolesManagementClient.d.ts +6 -1
  60. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/RolesManagementClient.js +46 -11
  61. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/UsersManagementClient.d.ts +34 -3
  62. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/UsersManagementClient.js +190 -53
  63. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/types.d.ts +10 -0
  64. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/types.js +1 -1
  65. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/utils.d.ts +1 -1
  66. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/utils.js +1 -1
  67. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/version.d.ts +1 -1
  68. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/version.js +2 -2
  69. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/types/graphql.v2.d.ts +661 -32
  70. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/types/graphql.v2.js +29 -18
  71. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/AuthenticationClient.d.ts +41 -1
  72. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/AuthenticationClient.js +60 -2
  73. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/QrCodeAuthenticationClient.js +6 -3
  74. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/SocialAuthenticationClient.d.ts +4 -0
  75. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/SocialAuthenticationClient.js +6 -5
  76. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/types.d.ts +10 -0
  77. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/types.js +1 -1
  78. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/common/GraphqlClient.js +10 -8
  79. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/common/HttpClient.js +17 -15
  80. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/graphqlapi.d.ts +12 -1
  81. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/graphqlapi.js +192 -2
  82. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/ApplicationsManagementClient.js +5 -3
  83. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/GroupsManagementClient.d.ts +5 -1
  84. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/GroupsManagementClient.js +29 -11
  85. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/ManagementClient.d.ts +5 -0
  86. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/ManagementClient.js +15 -2
  87. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/OrgManagementClient.d.ts +34 -1
  88. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/OrgManagementClient.js +71 -3
  89. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/RolesManagementClient.d.ts +6 -1
  90. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/RolesManagementClient.js +45 -10
  91. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/UsersManagementClient.d.ts +34 -3
  92. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/UsersManagementClient.js +189 -52
  93. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/types.d.ts +10 -0
  94. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/types.js +1 -1
  95. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/utils.d.ts +1 -1
  96. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/utils.js +1 -1
  97. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/version.d.ts +1 -1
  98. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/version.js +2 -2
  99. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/types/graphql.v2.d.ts +661 -32
  100. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/types/graphql.v2.js +30 -19
  101. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/package.json +1 -1
  102. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/CHANGELOG.md +210 -0
  103. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/LICENSE +23 -0
  104. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/README.md +275 -0
  105. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/config.js +11 -0
  106. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/lib/cli-options.js +13 -0
  107. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/lib/env-options.js +18 -0
  108. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/lib/main.js +118 -0
  109. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/package.json +57 -0
  110. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/types/index.d.ts +59 -0
  111. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/types/test.ts +19 -0
  112. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/types/tsconfig.json +15 -0
  113. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/types/tslint.json +6 -0
  114. data/lib/authing_ruby/test/js_sdk_test/node_modules/follow-redirects/index.js +0 -4
  115. data/lib/authing_ruby/test/js_sdk_test/node_modules/follow-redirects/package.json +1 -1
  116. data/lib/authing_ruby/test/js_sdk_test/package-lock.json +7 -7
  117. data/lib/authing_ruby/test/js_sdk_test/package.json +3 -2
  118. data/lib/authing_ruby/test/js_sdk_test/yarn.lock +71 -0
  119. data/lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb +36 -22
  120. data/lib/authing_ruby/test/mini_test/TestManagementClient.rb +3 -2
  121. data/lib/authing_ruby/test/mini_test/TestSMSandEmail.rb +46 -3
  122. data/lib/authing_ruby/test/sms.rb +18 -0
  123. data/lib/authing_ruby/utils/utils.rb +68 -0
  124. data/lib/authing_ruby/version.rb +1 -1
  125. metadata +19 -2
@@ -1,9 +1,9 @@
1
1
  # 测试内容: 用户认证模块-认证核心模块
2
- # 如何运行: ruby ./lib/test/mini_test/TestAuthenticationClient.rb
2
+ # 如何运行: ruby ./lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb
3
3
 
4
4
  require "minitest/autorun" # Minitest
5
5
  require "./lib/authing_ruby.rb" # 模块主文件
6
- require "./lib/test/helper.rb"
6
+ require "./lib/authing_ruby/test/helper.rb"
7
7
  require 'dotenv'
8
8
  Dotenv.load('.env.test') # 你可以编辑这个文件来修改环境变量
9
9
  # 备注: 不要用 staging 或 production 环境的用户池来测试,新建一个用户池专门做测试,因为测试期间会注册随机名字的用户
@@ -11,15 +11,34 @@ Dotenv.load('.env.test') # 你可以编辑这个文件来修改环境变量
11
11
  class TestAuthenticationClient < Minitest::Test
12
12
  def setup
13
13
  options = {
14
- appHost: ENV["appHost"], # "https://rails-demo.authing.cn",
15
- appId: ENV["appId"], # "60800b9151d040af9016d60b"
14
+ # appHost: ENV["appHost"], # "https://rails-demo.authing.cn",
15
+ # appId: ENV["appId"], # "60800b9151d040af9016d60b"
16
+ appId: "60ab26fe5be730bfc1742c68",
17
+ appHost: "https://hn-staging.authing.cn",
16
18
  }
17
19
  @authenticationClient = AuthingRuby::AuthenticationClient.new(options)
18
20
  @helper = Test::Helper.new
19
21
  end
20
22
 
23
+ # 测试: 手机号+验证码+密码 注册
24
+ # 需要手动测试(填验证码)
25
+ # ruby ./lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb -n test_registerByPhoneCode
26
+ def test_registerByPhoneCode
27
+ phone = '13556136684'
28
+ code = '8086'
29
+ password = '1234567890'
30
+ res = @authenticationClient.registerByPhoneCode(phone, code, password)
31
+ # puts '拿到的结果是:-----'
32
+ # puts res
33
+ # {:code=>2026, :message=>"用户已存在,请直接登录!", :data=>nil}
34
+ # {:code=>2001, :message=>"验证码不正确!", :data=>nil}
35
+
36
+ # 如果成功
37
+ # {"id"=>"60ad0c49d6e166f9fe23ba4d", "arn"=>"arn:cn:authing:60ab26fe478f98290befefaa:user:60ad0c49d6e166f9fe23ba4d", "userPoolId"=>"60ab26fe478f98290befefaa", "status"=>"Activated", "username"=>nil, "email"=>nil, "emailVerified"=>false, "phone"=>"13556136684", "phoneVerified"=>true, "unionid"=>nil, "openid"=>nil, "nickname"=>nil, "registerSource"=>["basic:phone-code"], "photo"=>"default-user-avatar.png", "password"=>"0361a6088087f31edd172c4f6076c0e6", "oauth"=>nil, "token"=>nil, "tokenExpiredAt"=>nil, "loginsCount"=>0, "lastLogin"=>nil, "lastIP"=>nil, "signedUp"=>nil, "blocked"=>false, "isDeleted"=>false, "device"=>nil, "browser"=>nil, "company"=>nil, "name"=>nil, "givenName"=>nil, "familyName"=>nil, "middleName"=>nil, "profile"=>nil, "preferredUsername"=>nil, "website"=>nil, "gender"=>"U", "birthdate"=>nil, "zoneinfo"=>nil, "locale"=>nil, "address"=>nil, "formatted"=>nil, "streetAddress"=>nil, "locality"=>nil, "region"=>nil, "postalCode"=>nil, "city"=>nil, "province"=>nil, "country"=>nil, "createdAt"=>"2021-05-25T14:40:09+00:00", "updatedAt"=>"2021-05-25T14:40:09+00:00", "externalId"=>nil}
38
+ end
39
+
21
40
  # 测试邮箱+密码注册
22
- # ruby ./lib/test/mini_test/TestAuthenticationClient.rb -n test_registerByEmail
41
+ # ruby /lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb -n test_registerByEmail
23
42
  def test_registerByEmail
24
43
  random_string = @helper.randomNumString()
25
44
  email = "#{random_string}@qq.com"
@@ -34,7 +53,7 @@ class TestAuthenticationClient < Minitest::Test
34
53
  end
35
54
 
36
55
  # 测试用户名+密码注册
37
- # ruby ./lib/test/mini_test/TestAuthenticationClient.rb -n test_registerByUsername
56
+ # ruby /lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb -n test_registerByUsername
38
57
  def test_registerByUsername
39
58
  random_string = @helper.randomString(9)
40
59
  username = random_string
@@ -44,7 +63,7 @@ class TestAuthenticationClient < Minitest::Test
44
63
  end
45
64
 
46
65
  # 测试邮箱+密码登录
47
- # ruby ./lib/test/mini_test/TestAuthenticationClient.rb -n test_loginByEmail
66
+ # ruby /lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb -n test_loginByEmail
48
67
  def test_loginByEmail
49
68
  # 第一步:先注册
50
69
  random_string = @helper.randomString(9)
@@ -58,7 +77,7 @@ class TestAuthenticationClient < Minitest::Test
58
77
  end
59
78
 
60
79
  # 测试用户名+密码登录
61
- # ruby ./lib/test/mini_test/TestAuthenticationClient.rb -n test_loginByUsername
80
+ # ruby /lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb -n test_loginByUsername
62
81
  def test_loginByUsername
63
82
  random_string = @helper.randomString(9)
64
83
  username = random_string
@@ -73,7 +92,7 @@ class TestAuthenticationClient < Minitest::Test
73
92
  # end
74
93
 
75
94
  # 测试获取当前用户
76
- # ruby ./lib/test/mini_test/TestAuthenticationClient.rb -n test_getCurrentUser
95
+ # ruby ./lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb -n test_getCurrentUser
77
96
  def test_getCurrentUser
78
97
  # 注册+登录
79
98
  username = "test_getCurrentUser_#{@helper.randomString()}"
@@ -87,7 +106,7 @@ class TestAuthenticationClient < Minitest::Test
87
106
  end
88
107
 
89
108
  # 测试退出登录
90
- # ruby ./lib/test/mini_test/TestAuthenticationClient.rb -n test_logout
109
+ # ruby /lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb -n test_logout
91
110
  def test_logout
92
111
  # 如何测试?
93
112
  # 1. 先登录, 用身份去做一些事情 (比如修改 nickname)
@@ -119,11 +138,13 @@ class TestAuthenticationClient < Minitest::Test
119
138
  end
120
139
 
121
140
  # 测试: 修改用户资料
122
- # ruby ./lib/test/mini_test/TestAuthenticationClient.rb -n test_updateProfile
141
+ # 需要手动测试(确保用户名+密码账号的确存在)
142
+ # ruby ./lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb -n test_updateProfile
123
143
  def test_updateProfile
124
144
  # 先登录
125
145
  username = 'zhengcheng123'
126
146
  password = "123456789"
147
+ @authenticationClient.registerByUsername(username, password)
127
148
  @authenticationClient.loginByUsername(username, password)
128
149
 
129
150
  # 进行第一次修改
@@ -141,7 +162,7 @@ class TestAuthenticationClient < Minitest::Test
141
162
  end
142
163
 
143
164
  # 测试: 检查密码强度
144
- # ruby ./lib/test/mini_test/TestAuthenticationClient.rb -n test_checkPasswordStrength
165
+ # ruby /lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb -n test_checkPasswordStrength
145
166
  # 注意, 在 Authing 用户池里 -> "扩展能力" -> "自定义密码加密",选的是 "用户可使用任意非空字符串作为密码"
146
167
  def test_checkPasswordStrength
147
168
  password = "123"
@@ -162,7 +183,7 @@ class TestAuthenticationClient < Minitest::Test
162
183
  end
163
184
 
164
185
  # 测试: 更新用户密码
165
- # ruby ./lib/test/mini_test/TestAuthenticationClient.rb -n test_updatePassword
186
+ # ruby /lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb -n test_updatePassword
166
187
  def test_updatePassword
167
188
  # 例子1:如果不登陆,直接改,会提示尚未登录
168
189
  # oldPassword = "123456789"
@@ -188,14 +209,6 @@ class TestAuthenticationClient < Minitest::Test
188
209
  assert(result.dig('id') != nil, result)
189
210
  end
190
211
 
191
- # 测试: 解绑手机号
192
- def test_unbindPhone
193
- end
194
-
195
- # 测试: 更新用户手机号
196
- def test_updatePhone
197
- end
198
-
199
212
  # 绑定邮箱
200
213
  def test_bindEmail
201
214
  end
@@ -205,11 +218,12 @@ class TestAuthenticationClient < Minitest::Test
205
218
  end
206
219
 
207
220
  # 测试: 检测 Token 登录状态
208
- # ruby ./lib/test/mini_test/TestAuthenticationClient.rb -n test_checkLoginStatus
221
+ # ruby ./lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb -n test_checkLoginStatus
209
222
  def test_checkLoginStatus
210
223
  # 第一步:先登录然后获取 token
211
224
  username = 'zhengcheng123'
212
225
  password = "123456789"
226
+ @authenticationClient.registerByUsername(username, password)
213
227
  user = @authenticationClient.loginByUsername(username, password)
214
228
  token = user.dig("token")
215
229
 
@@ -2,7 +2,7 @@
2
2
 
3
3
  require "minitest/autorun"
4
4
  require "./lib/authing_ruby.rb"
5
- require "./lib/test/helper.rb"
5
+ require "./lib/authing_ruby/test/helper.rb"
6
6
  require 'dotenv'
7
7
  Dotenv.load('.env.test')
8
8
 
@@ -10,6 +10,7 @@ class TestManagementClient < Minitest::Test
10
10
  def setup
11
11
  @options = {
12
12
  host: 'https://core.authing.cn',
13
+ # host: 'https://core.authing.co', # 2021-5-13 他们临时使用 .co,过几天等他们恢复了 .cn 这里就改回 .cn
13
14
  userPoolId: ENV["userPoolId"],
14
15
  secret: ENV["secret"],
15
16
  }
@@ -93,7 +94,7 @@ class TestManagementClient < Minitest::Test
93
94
  end
94
95
 
95
96
  # 测试通过 ID 获取用户信息
96
- # ruby ./lib/test/mini_test/TestManagementClient.rb -n test_detail
97
+ # ruby ./lib/authing_ruby/test/mini_test/TestManagementClient.rb -n test_detail
97
98
  def test_detail
98
99
  user = create_random_user()
99
100
  user_id = user.dig("id")
@@ -12,7 +12,7 @@
12
12
 
13
13
  require "minitest/autorun"
14
14
  require "./lib/authing_ruby.rb"
15
- require "./lib/test/helper.rb"
15
+ require "./lib/authing_ruby/test/helper.rb"
16
16
  require 'dotenv'
17
17
  Dotenv.load('.env.test')
18
18
 
@@ -97,5 +97,48 @@ class TestSMSandEmail < Minitest::Test
97
97
  # 清理工作:测完了删除第一步注册的用户
98
98
  user_id = user['id']
99
99
  @managementClient.users.delete(user_id)
100
- end
101
- end
100
+ end
101
+
102
+ # 测试: 更新用户手机号
103
+ # ruby ./lib/authing_ruby/test/mini_test/TestSMSandEmail.rb -n test_updatePhone
104
+ # 文档: https://docs.authing.cn/v2/reference/sdk-for-node/authentication/AuthenticationClient.html#%E6%9B%B4%E6%96%B0%E7%94%A8%E6%88%B7%E6%89%8B%E6%9C%BA%E5%8F%B7
105
+ def test_updatePhone
106
+ # 前提条件:先确保有一个用户是自己的手机号,可以直接进 Authing 手工新建一个用户。新建时给设定手机号和密码,手机号可以随便填比如13511112222
107
+ # 填写对应手机号, 以及密码
108
+ phone = '13511112222'
109
+ password = '123456789'
110
+ # 登录
111
+ user = @authenticationClient.loginByPhonePassword(phone, password)
112
+ # 填写另一个要绑定的新手机号(可以填你自己的,这样才能收到短信)
113
+ phone = '13556136684'
114
+
115
+ # 发送验证码 (把下面发短信这一行先取消注释, 收到短信后再注释上)
116
+ # puts manual_send_SMS(phone); return;
117
+
118
+ # 填写收到的短信验证码
119
+ code = '4874'
120
+
121
+ # 默认情况下,如果用户当前已经绑定了手机号,需要同时验证原有手机号
122
+ # 开发者也可以选择不开启 “验证原有手机号“ ,可以在 Authing 控制台 的 设置目录下的安全信息模块进行关闭。
123
+ # 单个用户池 -> 设置 -> 安全信息 -> 用户池安全设置 -> 修改手机号时是否验证旧手机号 -> 点击开关,切换为关闭 -> 右上角"保存"
124
+ # 由于没有2个手机号,这里是关闭后再测试
125
+ oldPhone = nil
126
+ oldPhoneCode = nil
127
+
128
+ updatePhoneResult = @authenticationClient.updatePhone(phone, code, oldPhone, oldPhoneCode)
129
+ puts updatePhoneResult
130
+ assert(updatePhoneResult.dig('id') != nil)
131
+
132
+ # 错误:
133
+ # {:code=>2020, :message=>"尚未登录,无访问权限", :data=>nil}
134
+ # {:code=>500, :message=>"该手机号已被绑定", :data=>nil}
135
+ # {:code=>2230, :message=>"新手机号和旧手机号一样", :data=>nil}
136
+ # {:code=>500, :message=>"修改手机号必须验证原来的手机号。", :data=>nil}
137
+ # {:code=>500, :message=>"验证码已过期", :data=>nil}
138
+ # {:code=>500, :message=>"验证码不正确!", :data=>nil}
139
+
140
+ # 成功会返回 User
141
+ # {"id"=>"60b5b17a9cf59b23b2bcbccb", "arn"=>"arn:cn:authing:60800b8ee5b66b23128b4980:user:60b5b17a9cf59b23b2bcbccb", "userPoolId"=>"60800b8ee5b66b23128b4980", "status"=>"Activated", "username"=>"测试更新手机号", "email"=>nil, "emailVerified"=>false, "phone"=>"13556136684", "phoneVerified"=>true, "unionid"=>nil, "openid"=>nil, "nickname"=>nil, "registerSource"=>["import:manual"], "photo"=>"https://files.authing.co/authing-console/default-user-avatar.png", "password"=>"871fde109c2f0f463cc35e0c3e840932", "oauth"=>nil, "token"=>"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI2MGI1YjE3YTljZjU5YjIzYjJiY2JjY2IiLCJiaXJ0aGRhdGUiOm51bGwsImZhbWlseV9uYW1lIjpudWxsLCJnZW5kZXIiOiJVIiwiZ2l2ZW5fbmFtZSI6bnVsbCwibG9jYWxlIjpudWxsLCJtaWRkbGVfbmFtZSI6bnVsbCwibmFtZSI6bnVsbCwibmlja25hbWUiOm51bGwsInBpY3R1cmUiOiJodHRwczovL2ZpbGVzLmF1dGhpbmcuY28vYXV0aGluZy1jb25zb2xlL2RlZmF1bHQtdXNlci1hdmF0YXIucG5nIiwicHJlZmVycmVkX3VzZXJuYW1lIjpudWxsLCJwcm9maWxlIjpudWxsLCJ1cGRhdGVkX2F0IjoiMjAyMS0wNi0wMVQwNDoxNjo1MS41NDBaIiwid2Vic2l0ZSI6bnVsbCwiem9uZWluZm8iOm51bGwsImFkZHJlc3MiOnsiY291bnRyeSI6bnVsbCwicG9zdGFsX2NvZGUiOm51bGwsInJlZ2lvbiI6bnVsbCwiZm9ybWF0dGVkIjpudWxsfSwicGhvbmVfbnVtYmVyIjoiMTM1MTExMTIyMjIiLCJwaG9uZV9udW1iZXJfdmVyaWZpZWQiOmZhbHNlLCJlbWFpbCI6bnVsbCwiZW1haWxfdmVyaWZpZWQiOmZhbHNlLCJleHRlcm5hbF9pZCI6bnVsbCwidW5pb25pZCI6bnVsbCwiZGF0YSI6eyJ0eXBlIjoidXNlciIsInVzZXJQb29sSWQiOiI2MDgwMGI4ZWU1YjY2YjIzMTI4YjQ5ODAiLCJhcHBJZCI6IjYwYjViMjFiZTMxMjkwNjI2ZmY2ZDgyZiIsImlkIjoiNjBiNWIxN2E5Y2Y1OWIyM2IyYmNiY2NiIiwidXNlcklkIjoiNjBiNWIxN2E5Y2Y1OWIyM2IyYmNiY2NiIiwiX2lkIjoiNjBiNWIxN2E5Y2Y1OWIyM2IyYmNiY2NiIiwicGhvbmUiOiIxMzUxMTExMjIyMiIsImVtYWlsIjpudWxsLCJ1c2VybmFtZSI6Iua1i-ivleabtOaWsOaJi-acuuWPtyIsInVuaW9uaWQiOm51bGwsIm9wZW5pZCI6bnVsbCwiY2xpZW50SWQiOiI2MDgwMGI4ZWU1YjY2YjIzMTI4YjQ5ODAifSwidXNlcnBvb2xfaWQiOiI2MDgwMGI4ZWU1YjY2YjIzMTI4YjQ5ODAiLCJhdWQiOiI2MGI1YjIxYmUzMTI5MDYyNmZmNmQ4MmYiLCJleHAiOjE2MjM3MzA2MzEsImlhdCI6MTYyMjUyMTAzMSwiaXNzIjoiaHR0cHM6Ly9tb3Jlbi5hdXRoaW5nLmNuL29pZGMifQ.VKSB6q-DBmtKLzOh_2qjBPQCSNZUAtrw_G2ZlNjOxbs", "tokenExpiredAt"=>"2021-06-15T04:17:11+00:00", "loginsCount"=>6, "lastLogin"=>"2021-06-01T04:17:11+00:00", "lastIP"=>nil, "signedUp"=>"2021-06-01T04:03:06+00:00", "blocked"=>false, "isDeleted"=>false, "device"=>nil, "browser"=>nil, "company"=>nil, "name"=>nil, "givenName"=>nil, "familyName"=>nil, "middleName"=>nil, "profile"=>nil, "preferredUsername"=>nil, "website"=>nil, "gender"=>"U", "birthdate"=>nil, "zoneinfo"=>nil, "locale"=>nil, "address"=>nil, "formatted"=>nil, "streetAddress"=>nil, "locality"=>nil, "region"=>nil, "postalCode"=>nil, "city"=>nil, "province"=>nil, "country"=>nil, "createdAt"=>"2021-06-01T04:03:06+00:00", "updatedAt"=>"2021-06-01T04:17:12+00:00"}
142
+ end
143
+
144
+ end
@@ -0,0 +1,18 @@
1
+ # 发短信
2
+ # ruby ./lib/authing_ruby/test/sms.rb
3
+
4
+ require "./lib/authing_ruby.rb" # 模块主文件
5
+ require "./lib/authing_ruby/test/helper.rb"
6
+ require 'dotenv'
7
+ Dotenv.load('.env.test') # 你可以编辑这个文件来修改环境变量
8
+
9
+ options = {
10
+ # appHost: ENV["appHost"] || , # "https://rails-demo.authing.cn",
11
+ # appId: ENV["appId"], # "60800b9151d040af9016d60b"
12
+ appId: "60ab26fe5be730bfc1742c68",
13
+ appHost: "https://hn-staging.authing.cn",
14
+ }
15
+ @authenticationClient = AuthingRuby::AuthenticationClient.new(options)
16
+ phone = "13556136684"
17
+ sms_result = @authenticationClient.sendSmsCode(phone)
18
+ puts sms_result
@@ -1,5 +1,8 @@
1
+ # 一些工具函数放这里
2
+
1
3
  require 'openssl'
2
4
  require "base64"
5
+ require 'jwt'
3
6
 
4
7
  module AuthingRuby
5
8
  class Utils
@@ -36,5 +39,70 @@ module AuthingRuby
36
39
  return result
37
40
  end
38
41
 
42
+ # verifyIDTokenHS256 函数用于验证 HS256 id_token
43
+
44
+ # 文档:使用指南 -> 常见问题 -> 如何验证用户身份凭证(token) -> 使用应用密钥验证 HS256 算法签名的 Token
45
+ # https://docs.authing.cn/v2/guides/faqs/how-to-validate-user-token.html#%E4%BD%BF%E7%94%A8%E5%BA%94%E7%94%A8%E5%AF%86%E9%92%A5%E9%AA%8C%E8%AF%81-hs256-%E7%AE%97%E6%B3%95%E7%AD%BE%E5%90%8D%E7%9A%84-token
46
+
47
+ # 官方文档目前(2021-5-13)是让用户自己处理 HS256 的 token,自己进行验证,但这样比较麻烦,我在 Ruby SDK 这边写一个方便的方法。
48
+ # verifyIDTokenHS256 返回 Boolean, true 代表 token 有效,false 代表无效
49
+
50
+ # 注意: 可以在 "应用 -> 授权 -> id_token 签名算法" 这里看到,选的是不是 HS256
51
+ # 如果是 HS256 才应该用这个方法来验证
52
+
53
+ # 参数 id_token 就是登录返回的 "token"
54
+ # 参数 appSecret 就是 Authing 里某个应用的 appSecret
55
+ def self.verifyIDTokenHS256(id_token, appSecret)
56
+ # 如果解码出错,直接返回 false
57
+ begin
58
+ hmac_secret = appSecret
59
+ decoded = JWT.decode id_token, hmac_secret, true, { algorithm: 'HS256' }
60
+ rescue => error
61
+ # puts error.message
62
+ return false
63
+ end
64
+
65
+ payload = decoded[0]
66
+ header = decoded[1]
67
+
68
+ # 从 payload 获得过期时间,然后判断是否过期
69
+ exp = payload["exp"] # 过期时间
70
+ current_timestamp = Time.now.to_i
71
+ if current_timestamp < exp
72
+ return true # 没过期
73
+ else
74
+ return false # 过期了
75
+ end
76
+ end
77
+
78
+ # decodeIdToken 函数用于 解码 id token 得到用户信息
79
+ # 因为 id token 其实就是一个普通的 JWT,所以 payload 没有加密过,只是 base64 编码了而已,可以当做明文看待 (你可以直接把 id token 粘贴到 https://jwt.io/ 看到 payload 内容)
80
+ # 所以 payload 不可以直接相信,必须先验证后才能相信。
81
+ # 函数返回:
82
+ # 成功:返回用户信息
83
+ # 失败:返回 nil (比如解码失败 或 token 过期)
84
+ def self.decodeIdToken(id_token, appSecret)
85
+ # 如果解码出错,直接返回 false
86
+ begin
87
+ hmac_secret = appSecret
88
+ decoded = JWT.decode id_token, hmac_secret, true, { algorithm: 'HS256' }
89
+ rescue => error
90
+ # puts error.message
91
+ return nil
92
+ end
93
+
94
+ payload = decoded[0]
95
+ header = decoded[1]
96
+
97
+ # 从 payload 获得过期时间,然后判断是否过期
98
+ exp = payload["exp"] # 过期时间
99
+ current_timestamp = Time.now.to_i
100
+ if current_timestamp < exp
101
+ return payload # 没过期
102
+ else
103
+ return nil # 过期了
104
+ end
105
+ end
106
+
39
107
  end
40
108
  end
@@ -2,5 +2,5 @@
2
2
  # https://github.com/Authing/authing.js/blob/cf4757d09de3b44c3c3f4509ae8c8715c9f302a2/src/lib/version.ts
3
3
 
4
4
  module AuthingRuby
5
- VERSION = "1.0.6".freeze
5
+ VERSION = "1.1.1".freeze
6
6
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authing_ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.6
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - 郑诚(Zheng Cheng)
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-06 00:00:00.000000000 Z
11
+ date: 2021-06-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: minitest
@@ -189,6 +189,7 @@ files:
189
189
  - lib/authing_ruby/graphql/mutations/resetPassword.gql
190
190
  - lib/authing_ruby/graphql/mutations/sendEmail.gql
191
191
  - lib/authing_ruby/graphql/mutations/updatePassword.gql
192
+ - lib/authing_ruby/graphql/mutations/updatePhone.gql
192
193
  - lib/authing_ruby/graphql/mutations/updateUser.gql
193
194
  - lib/authing_ruby/graphql/queries/accessToken.gql
194
195
  - lib/authing_ruby/graphql/queries/checkLoginStatus.gql
@@ -209,6 +210,8 @@ files:
209
210
  - lib/authing_ruby/test/helper.rb
210
211
  - lib/authing_ruby/test/js_sdk_test/1.buildAuthorizeUrl.js
211
212
  - lib/authing_ruby/test/js_sdk_test/2.buildAuthorizeUrl_PKCE.js
213
+ - lib/authing_ruby/test/js_sdk_test/2.registerByPhoneCode.js
214
+ - lib/authing_ruby/test/js_sdk_test/3.sendSMS.js
212
215
  - lib/authing_ruby/test/js_sdk_test/README.md
213
216
  - lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/CONTRIBUTION.md
214
217
  - lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/LICENSE
@@ -591,6 +594,18 @@ files:
591
594
  - lib/authing_ruby/test/js_sdk_test/node_modules/debug/src/debug.js
592
595
  - lib/authing_ruby/test/js_sdk_test/node_modules/debug/src/index.js
593
596
  - lib/authing_ruby/test/js_sdk_test/node_modules/debug/src/node.js
597
+ - lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/CHANGELOG.md
598
+ - lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/LICENSE
599
+ - lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/README.md
600
+ - lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/config.js
601
+ - lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/lib/cli-options.js
602
+ - lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/lib/env-options.js
603
+ - lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/lib/main.js
604
+ - lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/package.json
605
+ - lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/types/index.d.ts
606
+ - lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/types/test.ts
607
+ - lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/types/tsconfig.json
608
+ - lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/types/tslint.json
594
609
  - lib/authing_ruby/test/js_sdk_test/node_modules/follow-redirects/LICENSE
595
610
  - lib/authing_ruby/test/js_sdk_test/node_modules/follow-redirects/README.md
596
611
  - lib/authing_ruby/test/js_sdk_test/node_modules/follow-redirects/debug.js
@@ -657,6 +672,7 @@ files:
657
672
  - lib/authing_ruby/test/js_sdk_test/node_modules/ms/readme.md
658
673
  - lib/authing_ruby/test/js_sdk_test/package-lock.json
659
674
  - lib/authing_ruby/test/js_sdk_test/package.json
675
+ - lib/authing_ruby/test/js_sdk_test/yarn.lock
660
676
  - lib/authing_ruby/test/mini_test/TestApplicationsManagementClient.rb
661
677
  - lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb
662
678
  - lib/authing_ruby/test/mini_test/TestAuthenticationClientProtocal.rb
@@ -666,6 +682,7 @@ files:
666
682
  - lib/authing_ruby/test/mini_test/TestNaiveHttpClient.rb
667
683
  - lib/authing_ruby/test/mini_test/TestSMSandEmail.rb
668
684
  - lib/authing_ruby/test/mini_test/TestUtils.rb
685
+ - lib/authing_ruby/test/sms.rb
669
686
  - lib/authing_ruby/utils/utils.rb
670
687
  - lib/authing_ruby/version.rb
671
688
  homepage: https://github.com/1c7/authing_ruby