authing_ruby 1.0.7 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (128) hide show
  1. checksums.yaml +4 -4
  2. data/lib/authing_ruby/GraphQLAPI.rb +13 -2
  3. data/lib/authing_ruby/authentication/AuthenticationClient.rb +66 -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 +9 -8
  8. data/lib/authing_ruby/management/UsersManagementClient.rb +4 -6
  9. data/lib/authing_ruby/test/helper.rb +6 -2
  10. data/lib/authing_ruby/test/js_sdk_test/2.registerByPhoneCode.js +130 -0
  11. data/lib/authing_ruby/test/js_sdk_test/3.sendSMS.js +23 -0
  12. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/browser/index.min.js +1 -1
  13. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/AuthenticationClient.d.ts +41 -1
  14. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/AuthenticationClient.js +60 -2
  15. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/QrCodeAuthenticationClient.js +6 -3
  16. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/SocialAuthenticationClient.d.ts +4 -0
  17. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/SocialAuthenticationClient.js +6 -5
  18. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/types.d.ts +10 -0
  19. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/authentication/types.js +1 -1
  20. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/common/GraphqlClient.js +10 -8
  21. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/common/HttpClient.js +17 -15
  22. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/graphqlapi.d.ts +12 -1
  23. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/graphqlapi.js +192 -2
  24. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/ApplicationsManagementClient.js +5 -3
  25. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/GroupsManagementClient.d.ts +5 -1
  26. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/GroupsManagementClient.js +29 -11
  27. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/ManagementClient.d.ts +5 -0
  28. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/ManagementClient.js +15 -2
  29. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/OrgManagementClient.d.ts +34 -1
  30. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/OrgManagementClient.js +71 -3
  31. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/RolesManagementClient.d.ts +6 -1
  32. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/RolesManagementClient.js +45 -10
  33. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/UsersManagementClient.d.ts +34 -3
  34. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/UsersManagementClient.js +189 -52
  35. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/types.d.ts +10 -0
  36. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/management/types.js +1 -1
  37. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/utils.d.ts +1 -1
  38. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/utils.js +1 -1
  39. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/version.d.ts +1 -1
  40. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/lib/version.js +2 -2
  41. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/types/graphql.v2.d.ts +661 -32
  42. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/main/types/graphql.v2.js +30 -19
  43. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/AuthenticationClient.d.ts +41 -1
  44. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/AuthenticationClient.js +61 -3
  45. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/QrCodeAuthenticationClient.js +6 -3
  46. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/SocialAuthenticationClient.d.ts +4 -0
  47. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/SocialAuthenticationClient.js +6 -5
  48. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/types.d.ts +10 -0
  49. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/authentication/types.js +1 -1
  50. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/common/GraphqlClient.js +10 -8
  51. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/common/HttpClient.js +17 -15
  52. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/graphqlapi.d.ts +12 -1
  53. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/graphqlapi.js +192 -2
  54. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/ApplicationsManagementClient.js +5 -3
  55. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/GroupsManagementClient.d.ts +5 -1
  56. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/GroupsManagementClient.js +30 -12
  57. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/ManagementClient.d.ts +5 -0
  58. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/ManagementClient.js +15 -2
  59. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/OrgManagementClient.d.ts +34 -1
  60. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/OrgManagementClient.js +72 -4
  61. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/RolesManagementClient.d.ts +6 -1
  62. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/RolesManagementClient.js +46 -11
  63. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/UsersManagementClient.d.ts +34 -3
  64. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/UsersManagementClient.js +190 -53
  65. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/types.d.ts +10 -0
  66. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/management/types.js +1 -1
  67. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/utils.d.ts +1 -1
  68. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/utils.js +1 -1
  69. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/version.d.ts +1 -1
  70. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/lib/version.js +2 -2
  71. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/types/graphql.v2.d.ts +661 -32
  72. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/module/types/graphql.v2.js +29 -18
  73. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/AuthenticationClient.d.ts +41 -1
  74. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/AuthenticationClient.js +60 -2
  75. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/QrCodeAuthenticationClient.js +6 -3
  76. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/SocialAuthenticationClient.d.ts +4 -0
  77. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/SocialAuthenticationClient.js +6 -5
  78. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/types.d.ts +10 -0
  79. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/authentication/types.js +1 -1
  80. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/common/GraphqlClient.js +10 -8
  81. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/common/HttpClient.js +17 -15
  82. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/graphqlapi.d.ts +12 -1
  83. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/graphqlapi.js +192 -2
  84. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/ApplicationsManagementClient.js +5 -3
  85. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/GroupsManagementClient.d.ts +5 -1
  86. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/GroupsManagementClient.js +29 -11
  87. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/ManagementClient.d.ts +5 -0
  88. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/ManagementClient.js +15 -2
  89. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/OrgManagementClient.d.ts +34 -1
  90. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/OrgManagementClient.js +71 -3
  91. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/RolesManagementClient.d.ts +6 -1
  92. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/RolesManagementClient.js +45 -10
  93. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/UsersManagementClient.d.ts +34 -3
  94. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/UsersManagementClient.js +189 -52
  95. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/types.d.ts +10 -0
  96. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/management/types.js +1 -1
  97. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/utils.d.ts +1 -1
  98. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/utils.js +1 -1
  99. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/version.d.ts +1 -1
  100. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/lib/version.js +2 -2
  101. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/types/graphql.v2.d.ts +661 -32
  102. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/build/umd/types/graphql.v2.js +30 -19
  103. data/lib/authing_ruby/test/js_sdk_test/node_modules/authing-js-sdk/package.json +1 -1
  104. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/CHANGELOG.md +210 -0
  105. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/LICENSE +23 -0
  106. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/README.md +275 -0
  107. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/config.js +11 -0
  108. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/lib/cli-options.js +13 -0
  109. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/lib/env-options.js +18 -0
  110. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/lib/main.js +118 -0
  111. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/package.json +57 -0
  112. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/types/index.d.ts +59 -0
  113. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/types/test.ts +19 -0
  114. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/types/tsconfig.json +15 -0
  115. data/lib/authing_ruby/test/js_sdk_test/node_modules/dotenv/types/tslint.json +6 -0
  116. data/lib/authing_ruby/test/js_sdk_test/node_modules/follow-redirects/index.js +0 -4
  117. data/lib/authing_ruby/test/js_sdk_test/node_modules/follow-redirects/package.json +1 -1
  118. data/lib/authing_ruby/test/js_sdk_test/package-lock.json +7 -7
  119. data/lib/authing_ruby/test/js_sdk_test/package.json +3 -2
  120. data/lib/authing_ruby/test/js_sdk_test/yarn.lock +71 -0
  121. data/lib/authing_ruby/test/mini_test/TestApplicationsManagementClient.rb +2 -2
  122. data/lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb +27 -13
  123. data/lib/authing_ruby/test/mini_test/TestManagementClient.rb +31 -43
  124. data/lib/authing_ruby/test/mini_test/TestSMSandEmail.rb +47 -3
  125. data/lib/authing_ruby/test/sms.rb +18 -0
  126. data/lib/authing_ruby/utils/utils.rb +68 -0
  127. data/lib/authing_ruby/version.rb +1 -1
  128. metadata +23 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7aea089117c37cb1ba0f187b8ed1b26d3971af87adb438275c8ed5cf8ca74785
4
- data.tar.gz: 27dcf489dd3465c984898573ad885d778db8e32fd915b7538418e825f012888e
3
+ metadata.gz: 4203f8f2932fcacc6405c533a530d779fef455827507dbb35292813d4c916244
4
+ data.tar.gz: d62015f96cd7b5ffb283dcc69db496954632f3468894fd2ddf189a3f71dc8ba3
5
5
  SHA512:
6
- metadata.gz: e50c2815f4009a9f0bbff3e8b22c02ee9b4ade53cf927c34daab002ac4c456383165dd7ffa248004246c0cf24e953aa40e2d46d0de7c3747f6934eebe416ea7f
7
- data.tar.gz: e2ce98c1d7d1af2d9a60df129bfa11b6c323f412a91e6143878c13c4a0b36b3d4b59fa090f309acb12963a572c797d3f687f83f3145b21b9a104739e6171b86f
6
+ metadata.gz: a31bd62c0ddcf683dfb87427e241f24ccf32582d8848cc14764c2b0f496e6f10d49aa691cfb09a820fbfffcddb54ca67f0a82a307e125dcf4fa5dcc8bfe5e4e7
7
+ data.tar.gz: 24a19d114a8a24a4438e32c9d3b4c1209e1f75c7ec81efb068ce0fe4da0417bfd6279a65150f48f0c66f89f292aab6c3f21afee38dac754b8fe3840aeb54f5e8
@@ -1,10 +1,15 @@
1
- # 类似于 JS SDK 里 src/lib/graphqlapi.ts 的用途
2
- # 把一些 garpqhlClient.request 封装起来,里面包含了 const query = AccessTokenDocument;
1
+ # 类似 JS SDK 里 src/lib/graphqlapi.ts 的用途,把请求进行封装
3
2
 
4
3
  # 使用示例
5
4
  # graphqlAPI = AuthingRuby::GraphQLAPI.new
6
5
  # graphqlAPI.getAccessToken(graphqlClient, variables)
7
6
 
7
+ # 一共有三个参数
8
+ # (garpqhlClient, tokenProvider = nil, variables = nil)
9
+ # garpqhlClient 是 lib/authing_ruby/common/GraphqlClient.rb
10
+ # tokenProvider 是 lib/authing_ruby/authentication/AuthenticationTokenProvider.rb
11
+ # variables 就是参数
12
+
8
13
  module AuthingRuby
9
14
  class GraphQLAPI
10
15
 
@@ -112,12 +117,18 @@ module AuthingRuby
112
117
  return _graphql_mutation_request("resetPassword", garpqhlClient, tokenProvider, variables)
113
118
  end
114
119
 
120
+ # 更新用户手机号码
121
+ def updatePhone(garpqhlClient, tokenProvider = nil, variables = nil)
122
+ return _graphql_mutation_request("updatePhone", garpqhlClient, tokenProvider, variables)
123
+ end
124
+
115
125
  def bindPhone(garpqhlClient, tokenProvider = nil, variables = nil)
116
126
  return _graphql_mutation_request("bindPhone", garpqhlClient, tokenProvider, variables)
117
127
  end
118
128
 
119
129
  # 太多同样写法的 method 了,稍微抽象一下
120
130
  # 这个负责发 mutation 的 request
131
+ # 第一个参数 gql_file_name 就是文件名
121
132
  def _graphql_mutation_request(gql_file_name, garpqhlClient, tokenProvider, variables)
122
133
  file = File.open("#{@folder_mutation}/#{gql_file_name}.gql");
123
134
  return _graphql_request(file, garpqhlClient, tokenProvider, variables)
@@ -68,11 +68,10 @@ module AuthingRuby
68
68
  }
69
69
  }
70
70
  graphqlAPI = AuthingRuby::GraphQLAPI.new
71
- res = graphqlAPI.registerByEmail(@graphqlClient, variables)
72
- json = JSON.parse(res)
73
- user = json.dig('data', 'registerByEmail')
71
+ hash = graphqlAPI.registerByEmail(@graphqlClient, variables)
72
+ user = hash.dig('data', 'registerByEmail')
74
73
  return user if user
75
- return json
74
+ return hash
76
75
  end
77
76
 
78
77
  # 使用用户名注册
@@ -96,11 +95,10 @@ module AuthingRuby
96
95
  }
97
96
  }
98
97
  graphqlAPI = AuthingRuby::GraphQLAPI.new
99
- res = graphqlAPI.registerByUsername(@graphqlClient, variables)
100
- json = JSON.parse(res)
101
- user = json.dig('data', 'registerByUsername')
98
+ hash = graphqlAPI.registerByUsername(@graphqlClient, variables)
99
+ user = hash.dig('data', 'registerByUsername')
102
100
  return user if user
103
- return json
101
+ return hash
104
102
  end
105
103
 
106
104
  # 发送短信验证码
@@ -138,11 +136,10 @@ module AuthingRuby
138
136
  }
139
137
  }
140
138
  graphqlAPI = AuthingRuby::GraphQLAPI.new
141
- res = graphqlAPI.registerByPhoneCode(@graphqlClient, variables)
142
- json = JSON.parse(res)
143
- user = json.dig('data', 'registerByPhoneCode')
139
+ hash = graphqlAPI.registerByPhoneCode(@graphqlClient, variables)
140
+ user = hash.dig('data', 'registerByPhoneCode')
144
141
  return user if user
145
- return json
142
+ return hash
146
143
  end
147
144
 
148
145
  # 使用邮箱登录
@@ -163,14 +160,13 @@ module AuthingRuby
163
160
  }
164
161
  }
165
162
  graphqlAPI = AuthingRuby::GraphQLAPI.new
166
- res = graphqlAPI.loginByEmail(@graphqlClient, variables)
167
- json = JSON.parse(res)
168
- user = json.dig('data', 'loginByEmail')
163
+ hash = graphqlAPI.loginByEmail(@graphqlClient, variables)
164
+ user = hash.dig('data', 'loginByEmail')
169
165
  if user
170
166
  setCurrentUser(user);
171
167
  return user
172
168
  end
173
- return json
169
+ return hash
174
170
  end
175
171
 
176
172
  # 使用用户名登录
@@ -191,14 +187,13 @@ module AuthingRuby
191
187
  }
192
188
  }
193
189
  graphqlAPI = AuthingRuby::GraphQLAPI.new
194
- res = graphqlAPI.loginByUsername(@graphqlClient, variables)
195
- json = JSON.parse(res)
196
- user = json.dig('data', 'loginByUsername')
190
+ hash = graphqlAPI.loginByUsername(@graphqlClient, variables)
191
+ user = hash.dig('data', 'loginByUsername')
197
192
  if user
198
193
  setCurrentUser(user);
199
194
  return user
200
195
  end
201
- return json
196
+ return hash
202
197
  end
203
198
 
204
199
  # 使用手机号验证码登录
@@ -215,14 +210,13 @@ module AuthingRuby
215
210
  }
216
211
  }
217
212
  graphqlAPI = AuthingRuby::GraphQLAPI.new
218
- res = graphqlAPI.loginByPhoneCode(@graphqlClient, variables)
219
- json = JSON.parse(res)
220
- user = json.dig('data', 'loginByPhoneCode')
213
+ hash = graphqlAPI.loginByPhoneCode(@graphqlClient, variables)
214
+ user = hash.dig('data', 'loginByPhoneCode')
221
215
  if user
222
216
  setCurrentUser(user);
223
217
  return user
224
218
  end
225
- return json
219
+ return hash
226
220
  end
227
221
 
228
222
  # 使用手机号密码登录
@@ -242,17 +236,13 @@ module AuthingRuby
242
236
  }
243
237
  }
244
238
  graphqlAPI = AuthingRuby::GraphQLAPI.new
245
- res = graphqlAPI.loginByPhonePassword(@graphqlClient, variables)
246
- json = JSON.parse(res)
247
- user = json.dig('data', 'loginByPhonePassword')
239
+ hash = graphqlAPI.loginByPhonePassword(@graphqlClient, variables)
240
+ user = hash.dig('data', 'loginByPhonePassword')
248
241
  if user
249
242
  setCurrentUser(user);
250
243
  return user
251
244
  end
252
- return json
253
- end
254
-
255
- def checkLoginStatus
245
+ return hash
256
246
  end
257
247
 
258
248
  # 发送邮件
@@ -265,11 +255,10 @@ module AuthingRuby
265
255
  "scene": scene,
266
256
  }
267
257
  graphqlAPI = AuthingRuby::GraphQLAPI.new
268
- res = graphqlAPI.sendEmail(@graphqlClient, variables)
269
- json = JSON.parse(res)
270
- data = json.dig('data')
258
+ hash = graphqlAPI.sendEmail(@graphqlClient, variables)
259
+ data = hash.dig('data')
271
260
  return data if data
272
- return json
261
+ return hash
273
262
  # {"sendEmail":{"message":"","code":200}}
274
263
  end
275
264
 
@@ -277,14 +266,13 @@ module AuthingRuby
277
266
  # 返回:用户信息
278
267
  def getCurrentUser()
279
268
  graphqlAPI = AuthingRuby::GraphQLAPI.new
280
- res = graphqlAPI.getCurrentUser(@graphqlClient, @tokenProvider, {})
281
- json = JSON.parse(res)
282
- user = json.dig("data", "user")
269
+ hash = graphqlAPI.getCurrentUser(@graphqlClient, @tokenProvider, {})
270
+ user = hash.dig("data", "user")
283
271
  if user
284
272
  setCurrentUser(user)
285
273
  return user
286
274
  else
287
- return json
275
+ return hash
288
276
  end
289
277
  end
290
278
 
@@ -609,9 +597,8 @@ module AuthingRuby
609
597
  "id": userId,
610
598
  "input": updates
611
599
  }
612
- res = graphqlAPI.updateUser(@graphqlClient, @tokenProvider, variables)
613
- json = JSON.parse(res)
614
- updated_user = json.dig('data', 'updateUser')
600
+ hash = graphqlAPI.updateUser(@graphqlClient, @tokenProvider, variables)
601
+ updated_user = hash.dig('data', 'updateUser')
615
602
  if updated_user
616
603
  # 如果更新成功,返回更新后的用户
617
604
  setCurrentUser(updated_user)
@@ -619,7 +606,7 @@ module AuthingRuby
619
606
  else
620
607
  # 如果更新失败,返回原结果
621
608
  # {"errors"=>[{"message"=>{"code"=>2020, "message"=>"尚未登录,无访问权限"}, "locations"=>[{"line"=>2, "column"=>3}], "path"=>["updateUser"], "extensions"=>{"code"=>"INTERNAL_SERVER_ERROR"}}], "data"=>nil}
622
- return json
609
+ return hash
623
610
  end
624
611
  end
625
612
 
@@ -661,18 +648,16 @@ module AuthingRuby
661
648
  def checkPasswordStrength(password)
662
649
  graphqlAPI = AuthingRuby::GraphQLAPI.new
663
650
  variables = { "password": password }
664
- res = graphqlAPI.checkPasswordStrength(@graphqlClient, @tokenProvider, variables)
665
- json = JSON.parse(res)
666
- return json.dig("data", "checkPasswordStrength")
651
+ hash = graphqlAPI.checkPasswordStrength(@graphqlClient, @tokenProvider, variables)
652
+ return hash.dig("data", "checkPasswordStrength")
667
653
  end
668
654
 
669
655
  # 检测 Token 登录状态
670
656
  def checkLoginStatus(token)
671
657
  graphqlAPI = AuthingRuby::GraphQLAPI.new
672
658
  variables = { "token": token }
673
- res = graphqlAPI.checkLoginStatus(@graphqlClient, @tokenProvider, variables)
674
- json = JSON.parse(res)
675
- return json.dig("data", "checkLoginStatus")
659
+ hash = graphqlAPI.checkLoginStatus(@graphqlClient, @tokenProvider, variables)
660
+ return hash.dig("data", "checkLoginStatus")
676
661
  end
677
662
 
678
663
  # 更新用户密码
@@ -685,9 +670,8 @@ module AuthingRuby
685
670
  "oldPassword": oldPasswordEncrypted,
686
671
  }
687
672
  graphqlAPI = AuthingRuby::GraphQLAPI.new
688
- res = graphqlAPI.updatePassword(@graphqlClient, @tokenProvider, variables)
689
- json = JSON.parse(res)
690
- return json.dig("data", "updatePassword")
673
+ hash = graphqlAPI.updatePassword(@graphqlClient, @tokenProvider, variables)
674
+ return hash.dig("data", "updatePassword")
691
675
  end
692
676
 
693
677
  # 绑定手机号
@@ -698,14 +682,37 @@ module AuthingRuby
698
682
  "phone": phone,
699
683
  "phoneCode": phoneCode,
700
684
  }
701
- res = graphqlAPI.bindPhone(@graphqlClient, @tokenProvider, variables)
702
- json = JSON.parse(res)
703
- user = json.dig("data", "bindPhone")
685
+ hash = graphqlAPI.bindPhone(@graphqlClient, @tokenProvider, variables)
686
+ user = hash.dig("data", "bindPhone")
704
687
  if user
705
688
  setCurrentUser(user);
706
689
  return user;
707
690
  else
708
- return json
691
+ return hash
692
+ end
693
+ end
694
+
695
+ # 更新用户手机号
696
+ # 更新用户手机号。和修改邮箱一样,默认情况下,如果用户当前已经绑定了手机号,需要同时验证原有手机号(目前账号绑定的手机号)和当前邮箱(将要绑定的手机号)。
697
+ # 也就是说,用户 A 当前绑定的手机号为 15888888888,想修改为 15899999999,那么就需要同时验证这两个手机号。
698
+ # 开发者也可以选择不开启 “验证原有手机号“ ,可以在 Authing 控制台 的 设置目录下的安全信息模块进行关闭。
699
+ # 用户首次绑定手机号请使用 bindPhone 接口。
700
+ def updatePhone(phone, phoneCode, oldPhone, oldPhoneCode)
701
+ graphqlAPI = AuthingRuby::GraphQLAPI.new
702
+ variables = {
703
+ "phone": phone,
704
+ "phoneCode": phoneCode,
705
+ }
706
+ variables['oldPhone'] = oldPhone if oldPhone
707
+ variables['oldPhoneCode'] = oldPhoneCode if oldPhoneCode
708
+
709
+ hash = graphqlAPI.updatePhone(@graphqlClient, @tokenProvider, variables)
710
+ user = hash.dig("data", "updatePhone")
711
+ if user
712
+ setCurrentUser(user)
713
+ return user
714
+ else
715
+ return hash
709
716
  end
710
717
  end
711
718
 
@@ -720,11 +727,10 @@ module AuthingRuby
720
727
  "newPassword": newPasswordEncrypted,
721
728
  }
722
729
  graphqlAPI = AuthingRuby::GraphQLAPI.new
723
- resp = graphqlAPI.resetPassword(@graphqlClient, @tokenProvider, variables)
724
- json = JSON.parse(resp)
725
- result = json.dig("data", "resetPassword") # {"message":"重置密码成功!","code":200}
730
+ hash = graphqlAPI.resetPassword(@graphqlClient, @tokenProvider, variables)
731
+ result = hash.dig("data", "resetPassword") # {"message":"重置密码成功!","code":200}
726
732
  return result if result
727
- return json
733
+ return hash
728
734
  end
729
735
 
730
736
  def generateCodeChallenge()
@@ -14,6 +14,8 @@ module AuthingRuby
14
14
  @options = options
15
15
  end
16
16
 
17
+ # 发请求
18
+ # 成功或失败都返回 Hash
17
19
  def request(options)
18
20
  headers = {
19
21
  'content-type': 'application/json',
@@ -28,10 +30,46 @@ module AuthingRuby
28
30
  headers['Authorization'] = "Bearer #{token}"
29
31
  end
30
32
 
31
- json = options.fetch(:json, nil)
32
- # puts "@endpoint #{@endpoint}"
33
- response = HTTP.headers(headers).post(@endpoint, json: json)
34
- return response.body.to_s
33
+ option_json = options.fetch(:json, nil)
34
+ response = HTTP.headers(headers).post(@endpoint, json: option_json)
35
+
36
+ # 如果直接拿 body,它的类型是:
37
+ # puts response.body
38
+ # puts response.body.class.name # HTTP::Response::Body
39
+
40
+ # 如果转成 String:
41
+ # puts response.body.to_s
42
+ # puts response.body.to_s.class.name # String
43
+
44
+ hash = JSON.parse(response.body.to_s)
45
+
46
+ # 这里的错误处理代码参照的 JS SDK (src/lib/common/GraphqlClient.ts)
47
+ if hash['errors'] == nil
48
+ # 如果没错误
49
+ return hash
50
+ else
51
+ # 如果有错误, 最后返回这3个字段就行
52
+ code = nil
53
+ message = nil
54
+ data = nil
55
+
56
+ hash['errors'].each do |e|
57
+ if e['message']
58
+ message = e['message']
59
+ code = message['code']
60
+ message = message['message']
61
+ data = message['data']
62
+ end
63
+ end
64
+
65
+ # 返回 Hash
66
+ obj = {
67
+ code: code,
68
+ message: message,
69
+ data: data
70
+ }
71
+ return obj
72
+ end
35
73
  end
36
74
 
37
75
  end
@@ -0,0 +1,63 @@
1
+ mutation updatePhone(
2
+ $phone: String!
3
+ $phoneCode: String!
4
+ $oldPhone: String
5
+ $oldPhoneCode: String
6
+ ) {
7
+ updatePhone(
8
+ phone: $phone
9
+ phoneCode: $phoneCode
10
+ oldPhone: $oldPhone
11
+ oldPhoneCode: $oldPhoneCode
12
+ ) {
13
+ id
14
+ arn
15
+ userPoolId
16
+ status
17
+ username
18
+ email
19
+ emailVerified
20
+ phone
21
+ phoneVerified
22
+ unionid
23
+ openid
24
+ nickname
25
+ registerSource
26
+ photo
27
+ password
28
+ oauth
29
+ token
30
+ tokenExpiredAt
31
+ loginsCount
32
+ lastLogin
33
+ lastIP
34
+ signedUp
35
+ blocked
36
+ isDeleted
37
+ device
38
+ browser
39
+ company
40
+ name
41
+ givenName
42
+ familyName
43
+ middleName
44
+ profile
45
+ preferredUsername
46
+ website
47
+ gender
48
+ birthdate
49
+ zoneinfo
50
+ locale
51
+ address
52
+ formatted
53
+ streetAddress
54
+ locality
55
+ region
56
+ postalCode
57
+ city
58
+ province
59
+ country
60
+ createdAt
61
+ updatedAt
62
+ }
63
+ }
@@ -17,7 +17,7 @@ module AuthingRuby
17
17
  @accessToken = options.fetch(:accessToken, nil)
18
18
 
19
19
  if @userPoolId == nil && @appId == nil
20
- throw '请提供 userPoolId 或 appId!'
20
+ raise '请提供 userPoolId 或 appId!'
21
21
  end
22
22
 
23
23
  graphqlApiEndpointV2 = "#{@host}/graphql/v2"
@@ -16,8 +16,8 @@ module AuthingRuby
16
16
  @_accessToken = nil
17
17
  @_accessTokenExpriredAt = nil # 过期时间
18
18
 
19
- accessToken = options.fetch(:accessToken, nil)
20
19
  # 如果 options 里传入了 accessToken
20
+ accessToken = options.fetch(:accessToken, nil)
21
21
  if accessToken
22
22
  @_accessToken = accessToken;
23
23
  decoded_token_array = JWT.decode @_accessToken, nil, false # 试着解析一下
@@ -46,6 +46,7 @@ module AuthingRuby
46
46
  def _getAccessTokenFromServer
47
47
  accessToken = nil;
48
48
  secret = @options.fetch(:secret, nil)
49
+
49
50
  if secret
50
51
  accessToken = getClientWhenSdkInit()
51
52
  else
@@ -68,20 +69,20 @@ module AuthingRuby
68
69
  secret: @options.fetch(:secret, nil),
69
70
  }
70
71
  api = AuthingRuby::GraphQLAPI.new
71
- res = api.getAccessToken(@graphqlClient, variables)
72
+ hash = api.getAccessToken(@graphqlClient, variables)
72
73
  # {"data":{"accessToken":{"accessToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InR5cGUiOiJ1[省略]ZWE2NjE3IiwidXNlcks2lkIjoiNjA3YjBiMTVhYWIzYTgwNWY3ZWE2NjE3IiwiX2lkIjoiNjA3YjBiMTVhYWIzYTgwNWY3ZWE2NjE3IiwicGhvbmz3Mzk5M30.K7pwyvbxypeiOlYRsTIlLXY2xyk94tTd-CATQ85jYqM","exp":1620873993,"iat":1619577993}}}
73
- hash = JSON.parse(res)
74
74
  return hash.dig("data", "accessToken", "accessToken")
75
75
  end
76
76
 
77
- # TODO 还需要做什么?
78
77
  def refreshToken
79
78
  api = AuthingRuby::GraphQLAPI.new
80
- res = api.refreshAccessToken(@graphqlClient, {
81
- accessToken: @options.fetch(:accessToken, nil)
79
+ accessToken = @options.fetch(:accessToken, nil)
80
+ if accessToken == nil
81
+ raise "无法刷新 token, 因为初始化时没有传入 accessToken"
82
+ end
83
+ hash = api.refreshAccessToken(@graphqlClient, {
84
+ accessToken: accessToken
82
85
  })
83
- hash = JSON.parse(res)
84
- # puts hash
85
86
  # {"errors"=>[{"message"=>{"code"=>500, "message"=>"该 token 在黑名单中"}, "locations"=>[{"line"=>2, "column"=>5}], "path"=>["refreshAccessToken"], "extensions"=>{"code"=>"INTERNAL_SERVER_ERROR", "exception"=>{"name"=>"TokenInBlackListError"}}}], "data"=>nil}
86
87
  if hash.dig("errors")
87
88
  return hash