authing_ruby 1.0.9 → 1.1.4
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.
- checksums.yaml +4 -4
- data/lib/authing_ruby/GraphQLAPI.rb +13 -2
- data/lib/authing_ruby/authentication/AuthenticationClient.rb +67 -61
- data/lib/authing_ruby/common/GraphqlClient.rb +7 -9
- data/lib/authing_ruby/graphql/mutations/updatePhone.gql +63 -0
- data/lib/authing_ruby/management/ManagementClient.rb +1 -1
- data/lib/authing_ruby/management/ManagementTokenProvider.rb +2 -5
- data/lib/authing_ruby/management/UsersManagementClient.rb +32 -18
- data/lib/authing_ruby/test/helper.rb +6 -2
- data/lib/authing_ruby/test/mini_test/TestApplicationsManagementClient.rb +2 -2
- data/lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb +9 -10
- data/lib/authing_ruby/test/mini_test/TestManagementClient.rb +39 -51
- data/lib/authing_ruby/test/mini_test/TestSMSandEmail.rb +47 -3
- data/lib/authing_ruby/version.rb +1 -1
- metadata +7 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 53d6cdb77ad3c55b067f67fe25749cce6ccfec7ce806dff9cc8e645ee21d3cbf
|
|
4
|
+
data.tar.gz: f950ec08cd5ea8d36b516fac6118c5fee65bf22095baca57bee388615322df3b
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 3d4697fff2570f3e8d43129a35f0e0769404b223e17dbd6e403cb29aafe35227b3001ef703f6c486001b4e44457f41bf2e8bd566f6f0c88e423b52d8b5e22df2
|
|
7
|
+
data.tar.gz: 314074e61c1d6dfb8ff22ba441f98353aca88ad6c9d34286731569488c7a9b1a99069dc6f55563ed8847e4528a75fa9a7ebaf8e08462b573a907edb5b677bcf9
|
|
@@ -1,10 +1,15 @@
|
|
|
1
|
-
#
|
|
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
|
-
|
|
72
|
-
|
|
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
|
|
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
|
-
|
|
100
|
-
|
|
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
|
|
101
|
+
return hash
|
|
104
102
|
end
|
|
105
103
|
|
|
106
104
|
# 发送短信验证码
|
|
@@ -138,14 +136,10 @@ module AuthingRuby
|
|
|
138
136
|
}
|
|
139
137
|
}
|
|
140
138
|
graphqlAPI = AuthingRuby::GraphQLAPI.new
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
return user if user
|
|
146
|
-
return json
|
|
147
|
-
end
|
|
148
|
-
return res
|
|
139
|
+
hash = graphqlAPI.registerByPhoneCode(@graphqlClient, variables)
|
|
140
|
+
user = hash.dig('data', 'registerByPhoneCode')
|
|
141
|
+
return user if user
|
|
142
|
+
return hash
|
|
149
143
|
end
|
|
150
144
|
|
|
151
145
|
# 使用邮箱登录
|
|
@@ -166,14 +160,13 @@ module AuthingRuby
|
|
|
166
160
|
}
|
|
167
161
|
}
|
|
168
162
|
graphqlAPI = AuthingRuby::GraphQLAPI.new
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
user = json.dig('data', 'loginByEmail')
|
|
163
|
+
hash = graphqlAPI.loginByEmail(@graphqlClient, variables)
|
|
164
|
+
user = hash.dig('data', 'loginByEmail')
|
|
172
165
|
if user
|
|
173
166
|
setCurrentUser(user);
|
|
174
167
|
return user
|
|
175
168
|
end
|
|
176
|
-
return
|
|
169
|
+
return hash
|
|
177
170
|
end
|
|
178
171
|
|
|
179
172
|
# 使用用户名登录
|
|
@@ -194,14 +187,13 @@ module AuthingRuby
|
|
|
194
187
|
}
|
|
195
188
|
}
|
|
196
189
|
graphqlAPI = AuthingRuby::GraphQLAPI.new
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
user = json.dig('data', 'loginByUsername')
|
|
190
|
+
hash = graphqlAPI.loginByUsername(@graphqlClient, variables)
|
|
191
|
+
user = hash.dig('data', 'loginByUsername')
|
|
200
192
|
if user
|
|
201
193
|
setCurrentUser(user);
|
|
202
194
|
return user
|
|
203
195
|
end
|
|
204
|
-
return
|
|
196
|
+
return hash
|
|
205
197
|
end
|
|
206
198
|
|
|
207
199
|
# 使用手机号验证码登录
|
|
@@ -218,14 +210,13 @@ module AuthingRuby
|
|
|
218
210
|
}
|
|
219
211
|
}
|
|
220
212
|
graphqlAPI = AuthingRuby::GraphQLAPI.new
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
user = json.dig('data', 'loginByPhoneCode')
|
|
213
|
+
hash = graphqlAPI.loginByPhoneCode(@graphqlClient, variables)
|
|
214
|
+
user = hash.dig('data', 'loginByPhoneCode')
|
|
224
215
|
if user
|
|
225
216
|
setCurrentUser(user);
|
|
226
217
|
return user
|
|
227
218
|
end
|
|
228
|
-
return
|
|
219
|
+
return hash
|
|
229
220
|
end
|
|
230
221
|
|
|
231
222
|
# 使用手机号密码登录
|
|
@@ -245,14 +236,13 @@ module AuthingRuby
|
|
|
245
236
|
}
|
|
246
237
|
}
|
|
247
238
|
graphqlAPI = AuthingRuby::GraphQLAPI.new
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
user = json.dig('data', 'loginByPhonePassword')
|
|
239
|
+
hash = graphqlAPI.loginByPhonePassword(@graphqlClient, variables)
|
|
240
|
+
user = hash.dig('data', 'loginByPhonePassword')
|
|
251
241
|
if user
|
|
252
242
|
setCurrentUser(user);
|
|
253
243
|
return user
|
|
254
244
|
end
|
|
255
|
-
return
|
|
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
|
-
|
|
269
|
-
|
|
270
|
-
data = json.dig('data')
|
|
258
|
+
hash = graphqlAPI.sendEmail(@graphqlClient, variables)
|
|
259
|
+
data = hash.dig('data')
|
|
271
260
|
return data if data
|
|
272
|
-
return
|
|
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
|
-
|
|
281
|
-
|
|
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
|
|
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
|
-
|
|
613
|
-
|
|
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
|
|
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
|
-
|
|
665
|
-
|
|
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
|
-
|
|
674
|
-
|
|
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
|
-
|
|
689
|
-
|
|
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
|
-
|
|
702
|
-
|
|
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
|
|
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
|
-
|
|
724
|
-
|
|
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
|
|
733
|
+
return hash
|
|
728
734
|
end
|
|
729
735
|
|
|
730
736
|
def generateCodeChallenge()
|
|
@@ -14,9 +14,8 @@ module AuthingRuby
|
|
|
14
14
|
@options = options
|
|
15
15
|
end
|
|
16
16
|
|
|
17
|
-
#
|
|
18
|
-
#
|
|
19
|
-
# 如果失败,返回 Hash
|
|
17
|
+
# 发请求
|
|
18
|
+
# 成功或失败都返回 Hash
|
|
20
19
|
def request(options)
|
|
21
20
|
headers = {
|
|
22
21
|
'content-type': 'application/json',
|
|
@@ -42,20 +41,19 @@ module AuthingRuby
|
|
|
42
41
|
# puts response.body.to_s
|
|
43
42
|
# puts response.body.to_s.class.name # String
|
|
44
43
|
|
|
45
|
-
|
|
44
|
+
hash = JSON.parse(response.body.to_s)
|
|
46
45
|
|
|
47
46
|
# 这里的错误处理代码参照的 JS SDK (src/lib/common/GraphqlClient.ts)
|
|
48
|
-
if
|
|
49
|
-
#
|
|
50
|
-
|
|
51
|
-
return body_as_string
|
|
47
|
+
if hash['errors'] == nil
|
|
48
|
+
# 如果没错误
|
|
49
|
+
return hash
|
|
52
50
|
else
|
|
53
51
|
# 如果有错误, 最后返回这3个字段就行
|
|
54
52
|
code = nil
|
|
55
53
|
message = nil
|
|
56
54
|
data = nil
|
|
57
55
|
|
|
58
|
-
|
|
56
|
+
hash['errors'].each do |e|
|
|
59
57
|
if e['message']
|
|
60
58
|
message = e['message']
|
|
61
59
|
code = message['code']
|
|
@@ -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
|
+
}
|
|
@@ -13,7 +13,7 @@ module AuthingRuby
|
|
|
13
13
|
@userPoolId = options.fetch(:userPoolId, nil)
|
|
14
14
|
@secret = options.fetch(:secret, nil)
|
|
15
15
|
@appId = options.fetch(:appId, nil)
|
|
16
|
-
@host = options.fetch(:host,
|
|
16
|
+
@host = options.fetch(:host, 'https://core.authing.cn')
|
|
17
17
|
@accessToken = options.fetch(:accessToken, nil)
|
|
18
18
|
|
|
19
19
|
if @userPoolId == nil && @appId == nil
|
|
@@ -69,9 +69,8 @@ module AuthingRuby
|
|
|
69
69
|
secret: @options.fetch(:secret, nil),
|
|
70
70
|
}
|
|
71
71
|
api = AuthingRuby::GraphQLAPI.new
|
|
72
|
-
|
|
72
|
+
hash = api.getAccessToken(@graphqlClient, variables)
|
|
73
73
|
# {"data":{"accessToken":{"accessToken":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJkYXRhIjp7InR5cGUiOiJ1[省略]ZWE2NjE3IiwidXNlcks2lkIjoiNjA3YjBiMTVhYWIzYTgwNWY3ZWE2NjE3IiwiX2lkIjoiNjA3YjBiMTVhYWIzYTgwNWY3ZWE2NjE3IiwicGhvbmz3Mzk5M30.K7pwyvbxypeiOlYRsTIlLXY2xyk94tTd-CATQ85jYqM","exp":1620873993,"iat":1619577993}}}
|
|
74
|
-
hash = JSON.parse(res)
|
|
75
74
|
return hash.dig("data", "accessToken", "accessToken")
|
|
76
75
|
end
|
|
77
76
|
|
|
@@ -81,11 +80,9 @@ module AuthingRuby
|
|
|
81
80
|
if accessToken == nil
|
|
82
81
|
raise "无法刷新 token, 因为初始化时没有传入 accessToken"
|
|
83
82
|
end
|
|
84
|
-
|
|
83
|
+
hash = api.refreshAccessToken(@graphqlClient, {
|
|
85
84
|
accessToken: accessToken
|
|
86
85
|
})
|
|
87
|
-
hash = JSON.parse(res)
|
|
88
|
-
# puts hash
|
|
89
86
|
# {"errors"=>[{"message"=>{"code"=>500, "message"=>"该 token 在黑名单中"}, "locations"=>[{"line"=>2, "column"=>5}], "path"=>["refreshAccessToken"], "extensions"=>{"code"=>"INTERNAL_SERVER_ERROR", "exception"=>{"name"=>"TokenInBlackListError"}}}], "data"=>nil}
|
|
90
87
|
if hash.dig("errors")
|
|
91
88
|
return hash
|
|
@@ -29,8 +29,10 @@ module AuthingRuby
|
|
|
29
29
|
"userInfo": userInfo,
|
|
30
30
|
"keepPassword": keepPassword,
|
|
31
31
|
}
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
hash = graphqlAPI.createUser(@graphqlClient, @tokenProvider, variables)
|
|
33
|
+
user = hash.dig("data", "createUser")
|
|
34
|
+
return user if user
|
|
35
|
+
return hash
|
|
34
36
|
end
|
|
35
37
|
|
|
36
38
|
# 修改用户资料
|
|
@@ -49,8 +51,10 @@ module AuthingRuby
|
|
|
49
51
|
"id": id,
|
|
50
52
|
"input": updates
|
|
51
53
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
+
hash = graphqlAPI.updateUser(@graphqlClient, @tokenProvider, variables)
|
|
55
|
+
user = hash.dig("data", "updateUser")
|
|
56
|
+
return user if user
|
|
57
|
+
return hash
|
|
54
58
|
end
|
|
55
59
|
|
|
56
60
|
# 通过 ID 获取用户信息
|
|
@@ -59,8 +63,10 @@ module AuthingRuby
|
|
|
59
63
|
variables = {
|
|
60
64
|
"id": user_id,
|
|
61
65
|
}
|
|
62
|
-
|
|
63
|
-
|
|
66
|
+
hash = graphqlAPI.user(@graphqlClient, @tokenProvider, variables)
|
|
67
|
+
user = hash.dig("data", "user")
|
|
68
|
+
return user if user
|
|
69
|
+
return hash
|
|
64
70
|
end
|
|
65
71
|
|
|
66
72
|
# 删除用户
|
|
@@ -69,9 +75,11 @@ module AuthingRuby
|
|
|
69
75
|
"id": user_id,
|
|
70
76
|
}
|
|
71
77
|
graphqlAPI = AuthingRuby::GraphQLAPI.new
|
|
72
|
-
|
|
73
|
-
return res
|
|
78
|
+
hash = graphqlAPI.deleteUser(@graphqlClient, @tokenProvider, variables)
|
|
74
79
|
# {"data":{"deleteUser":{"message":"删除成功!","code":200}}}
|
|
80
|
+
data = hash.dig("data", "deleteUser")
|
|
81
|
+
return data if data
|
|
82
|
+
return hash
|
|
75
83
|
end
|
|
76
84
|
|
|
77
85
|
# 批量删除用户
|
|
@@ -80,9 +88,11 @@ module AuthingRuby
|
|
|
80
88
|
"ids": user_ids,
|
|
81
89
|
}
|
|
82
90
|
graphqlAPI = AuthingRuby::GraphQLAPI.new
|
|
83
|
-
|
|
84
|
-
return res
|
|
91
|
+
hash = graphqlAPI.deleteUsers(@graphqlClient, @tokenProvider, variables)
|
|
85
92
|
# {"data":{"deleteUsers":{"message":"删除成功!","code":200}}}
|
|
93
|
+
data = hash.dig("data", "deleteUsers")
|
|
94
|
+
return data if data
|
|
95
|
+
return hash
|
|
86
96
|
end
|
|
87
97
|
|
|
88
98
|
# 获取用户列表
|
|
@@ -92,8 +102,10 @@ module AuthingRuby
|
|
|
92
102
|
"limit": limit,
|
|
93
103
|
}
|
|
94
104
|
graphqlAPI = AuthingRuby::GraphQLAPI.new
|
|
95
|
-
|
|
96
|
-
|
|
105
|
+
hash = graphqlAPI.users(@graphqlClient, @tokenProvider, variables)
|
|
106
|
+
data = hash.dig("data", "users")
|
|
107
|
+
return data if data
|
|
108
|
+
return hash
|
|
97
109
|
end
|
|
98
110
|
|
|
99
111
|
# TODO
|
|
@@ -116,9 +128,10 @@ module AuthingRuby
|
|
|
116
128
|
"phone": phone,
|
|
117
129
|
}
|
|
118
130
|
graphqlAPI = AuthingRuby::GraphQLAPI.new
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
return
|
|
131
|
+
hash = graphqlAPI.isUserExists(@graphqlClient, @tokenProvider, variables)
|
|
132
|
+
data = hash.dig("data", "isUserExists")
|
|
133
|
+
return data if data
|
|
134
|
+
return hash
|
|
122
135
|
end
|
|
123
136
|
|
|
124
137
|
# 查找用户
|
|
@@ -138,9 +151,10 @@ module AuthingRuby
|
|
|
138
151
|
"externalId": externalId,
|
|
139
152
|
}
|
|
140
153
|
graphqlAPI = AuthingRuby::GraphQLAPI.new
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
return
|
|
154
|
+
hash = graphqlAPI.findUser(@graphqlClient, @tokenProvider, variables)
|
|
155
|
+
data = hash.dig("data", "findUser")
|
|
156
|
+
return data if data
|
|
157
|
+
return hash
|
|
144
158
|
end
|
|
145
159
|
|
|
146
160
|
# TODO
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
# ruby ./lib/test/mini_test/TestApplicationsManagementClient.rb
|
|
1
|
+
# ruby ./lib/authing_ruby/test/mini_test/TestApplicationsManagementClient.rb
|
|
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
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
# 测试内容: 用户认证模块-认证核心模块
|
|
2
|
-
# 如何运行: ruby
|
|
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" # 模块主文件
|
|
@@ -21,20 +21,20 @@ class TestAuthenticationClient < Minitest::Test
|
|
|
21
21
|
end
|
|
22
22
|
|
|
23
23
|
# 测试: 手机号+验证码+密码 注册
|
|
24
|
+
# 需要手动测试(填验证码)
|
|
24
25
|
# ruby ./lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb -n test_registerByPhoneCode
|
|
25
26
|
def test_registerByPhoneCode
|
|
26
27
|
phone = '13556136684'
|
|
27
28
|
code = '8086'
|
|
28
29
|
password = '1234567890'
|
|
29
30
|
res = @authenticationClient.registerByPhoneCode(phone, code, password)
|
|
30
|
-
puts '拿到的结果是:-----'
|
|
31
|
-
puts res
|
|
31
|
+
# puts '拿到的结果是:-----'
|
|
32
|
+
# puts res
|
|
32
33
|
# {:code=>2026, :message=>"用户已存在,请直接登录!", :data=>nil}
|
|
33
34
|
# {:code=>2001, :message=>"验证码不正确!", :data=>nil}
|
|
34
35
|
|
|
35
36
|
# 如果成功
|
|
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}
|
|
37
|
-
assert(res.dig('id'), res)
|
|
38
38
|
end
|
|
39
39
|
|
|
40
40
|
# 测试邮箱+密码注册
|
|
@@ -138,11 +138,13 @@ class TestAuthenticationClient < Minitest::Test
|
|
|
138
138
|
end
|
|
139
139
|
|
|
140
140
|
# 测试: 修改用户资料
|
|
141
|
-
#
|
|
141
|
+
# 需要手动测试(确保用户名+密码账号的确存在)
|
|
142
|
+
# ruby ./lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb -n test_updateProfile
|
|
142
143
|
def test_updateProfile
|
|
143
144
|
# 先登录
|
|
144
145
|
username = 'zhengcheng123'
|
|
145
146
|
password = "123456789"
|
|
147
|
+
@authenticationClient.registerByUsername(username, password)
|
|
146
148
|
@authenticationClient.loginByUsername(username, password)
|
|
147
149
|
|
|
148
150
|
# 进行第一次修改
|
|
@@ -207,10 +209,6 @@ class TestAuthenticationClient < Minitest::Test
|
|
|
207
209
|
assert(result.dig('id') != nil, result)
|
|
208
210
|
end
|
|
209
211
|
|
|
210
|
-
# 测试: 更新用户手机号
|
|
211
|
-
def test_updatePhone
|
|
212
|
-
end
|
|
213
|
-
|
|
214
212
|
# 绑定邮箱
|
|
215
213
|
def test_bindEmail
|
|
216
214
|
end
|
|
@@ -220,11 +218,12 @@ class TestAuthenticationClient < Minitest::Test
|
|
|
220
218
|
end
|
|
221
219
|
|
|
222
220
|
# 测试: 检测 Token 登录状态
|
|
223
|
-
# ruby
|
|
221
|
+
# ruby ./lib/authing_ruby/test/mini_test/TestAuthenticationClient.rb -n test_checkLoginStatus
|
|
224
222
|
def test_checkLoginStatus
|
|
225
223
|
# 第一步:先登录然后获取 token
|
|
226
224
|
username = 'zhengcheng123'
|
|
227
225
|
password = "123456789"
|
|
226
|
+
@authenticationClient.registerByUsername(username, password)
|
|
228
227
|
user = @authenticationClient.loginByUsername(username, password)
|
|
229
228
|
token = user.dig("token")
|
|
230
229
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# ruby ./lib/test/mini_test/TestManagementClient.rb
|
|
1
|
+
# ruby ./lib/authing_ruby/test/mini_test/TestManagementClient.rb
|
|
2
2
|
|
|
3
3
|
require "minitest/autorun"
|
|
4
4
|
require "./lib/authing_ruby.rb"
|
|
@@ -9,8 +9,8 @@ Dotenv.load('.env.test')
|
|
|
9
9
|
class TestManagementClient < Minitest::Test
|
|
10
10
|
def setup
|
|
11
11
|
@options = {
|
|
12
|
-
|
|
13
|
-
host: 'https://core.authing.co', # 2021-5-13 他们临时使用 .co,过几天等他们恢复了 .cn 这里就改回 .cn
|
|
12
|
+
host: 'https://core.authing.cn',
|
|
13
|
+
# host: 'https://core.authing.co', # 2021-5-13 他们临时使用 .co,过几天等他们恢复了 .cn 这里就改回 .cn
|
|
14
14
|
userPoolId: ENV["userPoolId"],
|
|
15
15
|
secret: ENV["secret"],
|
|
16
16
|
}
|
|
@@ -18,24 +18,25 @@ class TestManagementClient < Minitest::Test
|
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
# 创建用户
|
|
21
|
-
# ruby ./lib/test/mini_test/TestManagementClient.rb -n test_users_create
|
|
21
|
+
# ruby ./lib/authing_ruby/test/mini_test/TestManagementClient.rb -n test_users_create
|
|
22
22
|
def test_users_create
|
|
23
23
|
managementClient = AuthingRuby::ManagementClient.new(@options)
|
|
24
|
+
random_phone = "135#{@helper.randomNumString(8)}"
|
|
24
25
|
userInfo = {
|
|
25
|
-
username: @helper.randomString, # 随机字符串,比如 "mpflok"
|
|
26
|
+
# username: @helper.randomString, # 随机字符串,比如 "mpflok"
|
|
26
27
|
# username: 'SpongeBob3', # 或者明确指定用户名
|
|
27
|
-
|
|
28
|
+
phone: random_phone,
|
|
29
|
+
password: '123456789',
|
|
28
30
|
}
|
|
29
|
-
|
|
30
|
-
json = JSON.parse(res)
|
|
31
|
-
# puts res
|
|
32
|
-
# 如果成功
|
|
33
|
-
# {"data":{"createUser":{"id":"608ab9828eab7e35e81bd732","arn":"arn:cn:authing:60800b8ee5b66b23128b4980:user:608ab9828eab7e35e81bd732","userPoolId":"60800b8ee5b66b23128b4980","status":"Activated","username":"SpongeBob2","email":null,"emailVerified":false,"phone":null,"phoneVerified":false,"unionid":null,"openid":null,"nickname":null,"registerSource":["import:manual"],"photo":"default-user-avatar.png","password":"91b133c2e13e40852505946b7e0c2f04","oauth":null,"token":null,"tokenExpiredAt":null,"loginsCount":0,"lastLogin":null,"lastIP":null,"signedUp":null,"blocked":false,"isDeleted":false,"device":null,"browser":null,"company":null,"name":null,"givenName":null,"familyName":null,"middleName":null,"profile":null,"preferredUsername":null,"website":null,"gender":"U","birthdate":null,"zoneinfo":null,"locale":null,"address":null,"formatted":null,"streetAddress":null,"locality":null,"region":null,"postalCode":null,"city":null,"province":null,"country":null,"createdAt":"2021-04-29T13:49:54+00:00","updatedAt":"2021-04-29T13:49:54+00:00","externalId":null}}}
|
|
31
|
+
hash = managementClient.users.create(userInfo)
|
|
34
32
|
|
|
35
|
-
#
|
|
33
|
+
# 成功
|
|
34
|
+
# {"id":"608ab9828eab7e35e81bd732","arn":"arn:cn:authing:60800b8ee5b66b23128b4980:user:608ab9828eab7e35e81bd732","userPoolId":"60800b8ee5b66b23128b4980","status":"Activated","username":"SpongeBob2","email":null,"emailVerified":false,"phone":null,"phoneVerified":false,"unionid":null,"openid":null,"nickname":null,"registerSource":["import:manual"],"photo":"default-user-avatar.png","password":"91b133c2e13e40852505946b7e0c2f04","oauth":null,"token":null,"tokenExpiredAt":null,"loginsCount":0,"lastLogin":null,"lastIP":null,"signedUp":null,"blocked":false,"isDeleted":false,"device":null,"browser":null,"company":null,"name":null,"givenName":null,"familyName":null,"middleName":null,"profile":null,"preferredUsername":null,"website":null,"gender":"U","birthdate":null,"zoneinfo":null,"locale":null,"address":null,"formatted":null,"streetAddress":null,"locality":null,"region":null,"postalCode":null,"city":null,"province":null,"country":null,"createdAt":"2021-04-29T13:49:54+00:00","updatedAt":"2021-04-29T13:49:54+00:00","externalId":null}
|
|
35
|
+
|
|
36
|
+
# 失败
|
|
36
37
|
# {"errors":[{"message":{"code":2026,"message":"用户已存在,请勿重复创建!"},"locations":[{"line":2,"column":3}],"path":["createUser"],"extensions":{"code":"INTERNAL_SERVER_ERROR"}}],"data":null}
|
|
37
38
|
|
|
38
|
-
assert(
|
|
39
|
+
assert(hash.dig("id") != nil, hash)
|
|
39
40
|
end
|
|
40
41
|
|
|
41
42
|
# 创建用户
|
|
@@ -49,10 +50,8 @@ class TestManagementClient < Minitest::Test
|
|
|
49
50
|
loginsCount: 2, # 原有用户系统记录的用户登录次数
|
|
50
51
|
signedUp: '2020-10-15T17:55:37+08:00' # 原有用户系统记录的用户注册时间
|
|
51
52
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
json = JSON.parse(res)
|
|
55
|
-
assert(json.dig("data", "createUser") != nil, json)
|
|
53
|
+
hash = managementClient.users.create(userInfo)
|
|
54
|
+
assert(hash.dig("id") != nil, hash)
|
|
56
55
|
end
|
|
57
56
|
|
|
58
57
|
# 创建一个用户, 并返回这个用户
|
|
@@ -67,14 +66,12 @@ class TestManagementClient < Minitest::Test
|
|
|
67
66
|
end
|
|
68
67
|
|
|
69
68
|
managementClient = AuthingRuby::ManagementClient.new(@options)
|
|
70
|
-
|
|
71
|
-
json = JSON.parse(res)
|
|
72
|
-
user = json.dig("data", "createUser")
|
|
69
|
+
user = managementClient.users.create(userInfo)
|
|
73
70
|
return user
|
|
74
71
|
end
|
|
75
72
|
|
|
76
73
|
# 更新用户
|
|
77
|
-
# ruby ./lib/test/mini_test/TestManagementClient.rb -n test_update_user
|
|
74
|
+
# ruby ./lib/authing_ruby/test/mini_test/TestManagementClient.rb -n test_update_user
|
|
78
75
|
def test_update_user
|
|
79
76
|
# 第一步:创建用户
|
|
80
77
|
user = create_random_user()
|
|
@@ -82,15 +79,17 @@ class TestManagementClient < Minitest::Test
|
|
|
82
79
|
|
|
83
80
|
# 第二步:更新用户
|
|
84
81
|
managementClient = AuthingRuby::ManagementClient.new(@options)
|
|
85
|
-
|
|
82
|
+
hash = managementClient.users.update(user_id, {
|
|
86
83
|
nickname: 'Nick',
|
|
87
84
|
})
|
|
88
|
-
# puts
|
|
85
|
+
# puts hash
|
|
86
|
+
# 成功
|
|
87
|
+
# {"id"=>"60b902e844428416be3a25b8", "arn"=>"arn:cn:authing:60800b8ee5b66b23128b4980:user:60b902e844428416be3a25b8", "userPoolId"=>"60800b8ee5b66b23128b4980", "status"=>"Activated", "username"=>nil, "email"=>nil, "emailVerified"=>false, "phone"=>"17600009338", "phoneVerified"=>false, "unionid"=>nil, "openid"=>nil, "nickname"=>"Nick", "registerSource"=>["import:manual"], "photo"=>"https://files.authing.co/authing-console/default-user-avatar.png", "password"=>nil, "oauth"=>nil, "token"=>nil, "tokenExpiredAt"=>nil, "loginsCount"=>0, "lastLogin"=>nil, "lastIP"=>nil, "signedUp"=>"2021-06-03T16:27:20+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-03T16:27:20+00:00", "updatedAt"=>"2021-06-03T16:27:22+00:00", "externalId"=>nil}
|
|
88
|
+
|
|
89
89
|
# 如果失败
|
|
90
90
|
# {"errors":[{"message":{"code":2004,"message":"用户不存在"},"locations":[{"line":2,"column":3}],"path":["updateUser"],"extensions":{"code":"INTERNAL_SERVER_ERROR"}}],"data":null}
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
assert(json2.dig("data", "updateUser") != nil, json2)
|
|
92
|
+
assert(hash.dig("id") != nil, hash)
|
|
94
93
|
end
|
|
95
94
|
|
|
96
95
|
# 测试通过 ID 获取用户信息
|
|
@@ -100,26 +99,20 @@ class TestManagementClient < Minitest::Test
|
|
|
100
99
|
user_id = user.dig("id")
|
|
101
100
|
|
|
102
101
|
managementClient = AuthingRuby::ManagementClient.new(@options)
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
json = JSON.parse(res)
|
|
106
|
-
assert(json.dig("data", "user") != nil, json)
|
|
102
|
+
hash = managementClient.users.detail(user_id)
|
|
103
|
+
assert(hash.dig("id") != nil, hash)
|
|
107
104
|
end
|
|
108
105
|
|
|
109
106
|
# 测试删除用户
|
|
110
|
-
# ruby ./lib/test/mini_test/TestManagementClient.rb -n test_delete
|
|
107
|
+
# ruby ./lib/authing_ruby/test/mini_test/TestManagementClient.rb -n test_delete
|
|
111
108
|
def test_delete
|
|
112
109
|
user = create_random_user()
|
|
113
110
|
user_id = user.dig("id")
|
|
114
111
|
|
|
115
112
|
managementClient = AuthingRuby::ManagementClient.new(@options)
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
# {"data":{"deleteUser":{"message":"删除成功!","code":200}}}
|
|
120
|
-
|
|
121
|
-
json = JSON.parse(res)
|
|
122
|
-
assert(json.dig("data", "deleteUser") != nil, json)
|
|
113
|
+
hash = managementClient.users.delete(user_id)
|
|
114
|
+
# {"message":"删除成功!","code":200}
|
|
115
|
+
assert(hash.dig("code") == 200, hash)
|
|
123
116
|
end
|
|
124
117
|
|
|
125
118
|
# 测试删除多个用户
|
|
@@ -134,22 +127,17 @@ class TestManagementClient < Minitest::Test
|
|
|
134
127
|
user_ids = [user1_id, user2_id]
|
|
135
128
|
|
|
136
129
|
managementClient = AuthingRuby::ManagementClient.new(@options)
|
|
137
|
-
|
|
138
|
-
#
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
json = JSON.parse(res)
|
|
142
|
-
assert(json.dig("data", "deleteUsers") != nil, json)
|
|
130
|
+
hash = managementClient.users.deleteMany(user_ids)
|
|
131
|
+
# {"message":"删除成功!","code":200}
|
|
132
|
+
assert(hash.dig("code") == 200, hash)
|
|
143
133
|
end
|
|
144
134
|
|
|
145
135
|
# 测试获取用户列表
|
|
146
|
-
# ruby ./lib/test/mini_test/TestManagementClient.rb -n test_list
|
|
136
|
+
# ruby ./lib/authing_ruby/test/mini_test/TestManagementClient.rb -n test_list
|
|
147
137
|
def test_list
|
|
148
138
|
managementClient = AuthingRuby::ManagementClient.new(@options)
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
json = JSON.parse(res)
|
|
152
|
-
assert(json.dig("data", "users") != nil, json)
|
|
139
|
+
hash = managementClient.users.list()
|
|
140
|
+
assert(hash.dig("totalCount") != nil, hash)
|
|
153
141
|
end
|
|
154
142
|
|
|
155
143
|
# 测试 检查用户是否存在 (返回 true | false)
|
|
@@ -173,7 +161,7 @@ class TestManagementClient < Minitest::Test
|
|
|
173
161
|
end
|
|
174
162
|
|
|
175
163
|
# 测试 查找用户 (返回这个用户)
|
|
176
|
-
# ruby ./lib/test/mini_test/TestManagementClient.rb -n test_find
|
|
164
|
+
# ruby ./lib/authing_ruby/test/mini_test/TestManagementClient.rb -n test_find
|
|
177
165
|
def test_find
|
|
178
166
|
# 第一步:先创建用户
|
|
179
167
|
userInfo = {
|
|
@@ -187,8 +175,8 @@ class TestManagementClient < Minitest::Test
|
|
|
187
175
|
# "email": "haha2@qq.com",
|
|
188
176
|
# "phone": "13700001111",
|
|
189
177
|
}
|
|
190
|
-
|
|
191
|
-
assert(
|
|
178
|
+
hash = managementClient.users.find(options)
|
|
179
|
+
assert(hash.dig("id"), hash)
|
|
192
180
|
end
|
|
193
181
|
|
|
194
182
|
end
|
|
@@ -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,49 @@ class TestSMSandEmail < Minitest::Test
|
|
|
97
97
|
# 清理工作:测完了删除第一步注册的用户
|
|
98
98
|
user_id = user['id']
|
|
99
99
|
@managementClient.users.delete(user_id)
|
|
100
|
-
end
|
|
101
|
-
|
|
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 密码 123456789
|
|
107
|
+
|
|
108
|
+
# 先登录:
|
|
109
|
+
phone = '13511112222'
|
|
110
|
+
password = '123456789'
|
|
111
|
+
user = @authenticationClient.loginByPhonePassword(phone, password)
|
|
112
|
+
|
|
113
|
+
# 填写要绑定的新手机号(可以填你自己的,这样才能收到短信)
|
|
114
|
+
phone = '13556136684'
|
|
115
|
+
|
|
116
|
+
# 给新手机号发送短信验证码 (把下面这行先取消注释, 收到短信后再注释上)
|
|
117
|
+
# puts manual_send_SMS(phone); return;
|
|
118
|
+
|
|
119
|
+
# 填写收到的短信验证码
|
|
120
|
+
code = '4874'
|
|
121
|
+
|
|
122
|
+
# 默认情况下,如果用户当前已经绑定了手机号,需要同时验证原有手机号
|
|
123
|
+
# 开发者也可以选择不开启 “验证原有手机号“ ,可以在 Authing 控制台 的 设置目录下的安全信息模块进行关闭。
|
|
124
|
+
# 单个用户池 -> 设置 -> 安全信息 -> 用户池安全设置 -> 修改手机号时是否验证旧手机号 -> 点击开关,切换为关闭 -> 右上角"保存"
|
|
125
|
+
# 由于没有2个手机号,这里是关闭后再测试
|
|
126
|
+
oldPhone = nil
|
|
127
|
+
oldPhoneCode = nil
|
|
128
|
+
|
|
129
|
+
updatePhoneResult = @authenticationClient.updatePhone(phone, code, oldPhone, oldPhoneCode)
|
|
130
|
+
puts updatePhoneResult
|
|
131
|
+
assert(updatePhoneResult.dig('id') != nil)
|
|
132
|
+
|
|
133
|
+
# 错误:
|
|
134
|
+
# {:code=>2020, :message=>"尚未登录,无访问权限", :data=>nil}
|
|
135
|
+
# {:code=>500, :message=>"该手机号已被绑定", :data=>nil}
|
|
136
|
+
# {:code=>2230, :message=>"新手机号和旧手机号一样", :data=>nil}
|
|
137
|
+
# {:code=>500, :message=>"修改手机号必须验证原来的手机号。", :data=>nil}
|
|
138
|
+
# {:code=>500, :message=>"验证码已过期", :data=>nil}
|
|
139
|
+
# {:code=>500, :message=>"验证码不正确!", :data=>nil}
|
|
140
|
+
|
|
141
|
+
# 成功会返回 User
|
|
142
|
+
# {"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"}
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
end
|
data/lib/authing_ruby/version.rb
CHANGED
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.
|
|
4
|
+
version: 1.1.4
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- 郑诚(Zheng Cheng)
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-
|
|
11
|
+
date: 2021-06-03 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
|
|
@@ -688,7 +689,7 @@ homepage: https://github.com/1c7/authing_ruby
|
|
|
688
689
|
licenses:
|
|
689
690
|
- MIT
|
|
690
691
|
metadata: {}
|
|
691
|
-
post_install_message:
|
|
692
|
+
post_install_message:
|
|
692
693
|
rdoc_options: []
|
|
693
694
|
require_paths:
|
|
694
695
|
- lib
|
|
@@ -703,8 +704,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
703
704
|
- !ruby/object:Gem::Version
|
|
704
705
|
version: '0'
|
|
705
706
|
requirements: []
|
|
706
|
-
rubygems_version: 3.0.
|
|
707
|
-
signing_key:
|
|
707
|
+
rubygems_version: 3.0.9
|
|
708
|
+
signing_key:
|
|
708
709
|
specification_version: 4
|
|
709
710
|
summary: Authing 的 Ruby SDK
|
|
710
711
|
test_files: []
|