@cloudbase/oauth 1.0.1-alpha.0 → 1.3.1-beta

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 (102) hide show
  1. package/app/index.d.ts +29 -0
  2. package/app/index.js +54 -0
  3. package/app/index.js.map +1 -0
  4. package/app/internal.d.ts +12 -0
  5. package/app/internal.js +25 -0
  6. package/app/internal.js.map +1 -0
  7. package/app/openuri.d.ts +20 -0
  8. package/app/openuri.js +105 -0
  9. package/app/openuri.js.map +1 -0
  10. package/app/request.d.ts +19 -0
  11. package/app/request.js +52 -0
  12. package/app/request.js.map +1 -0
  13. package/app/storage.d.ts +41 -0
  14. package/app/storage.js +35 -0
  15. package/app/storage.js.map +1 -0
  16. package/{dist/auth → auth}/consts.d.ts +21 -9
  17. package/auth/consts.js +79 -0
  18. package/auth/consts.js.map +1 -0
  19. package/auth/index.d.ts +242 -0
  20. package/auth/index.js +551 -0
  21. package/auth/index.js.map +1 -0
  22. package/auth/models.d.ts +286 -0
  23. package/auth/models.js +4 -0
  24. package/auth/models.js.map +1 -0
  25. package/captcha/index.d.ts +45 -0
  26. package/captcha/index.js +135 -0
  27. package/captcha/index.js.map +1 -0
  28. package/function/index.d.ts +38 -0
  29. package/function/index.js +80 -0
  30. package/function/index.js.map +1 -0
  31. package/index.d.ts +14 -0
  32. package/index.js +24 -0
  33. package/index.js.map +1 -0
  34. package/{dist/oauth2client → oauthclient}/consts.d.ts +1 -22
  35. package/oauthclient/consts.js +53 -0
  36. package/oauthclient/consts.js.map +1 -0
  37. package/oauthclient/index.d.ts +18 -0
  38. package/oauthclient/index.js +21 -0
  39. package/oauthclient/index.js.map +1 -0
  40. package/oauthclient/interface.d.ts +29 -0
  41. package/oauthclient/interface.js +10 -0
  42. package/oauthclient/interface.js.map +1 -0
  43. package/oauthclient/models.d.ts +40 -0
  44. package/oauthclient/models.js +3 -0
  45. package/oauthclient/models.js.map +1 -0
  46. package/oauthclient/oauthclient.d.ts +146 -0
  47. package/oauthclient/oauthclient.js +414 -0
  48. package/oauthclient/oauthclient.js.map +1 -0
  49. package/package.json +13 -28
  50. package/utils/promise.d.ts +18 -0
  51. package/utils/promise.js +48 -0
  52. package/utils/promise.js.map +1 -0
  53. package/utils/uuid.d.ts +5 -0
  54. package/utils/uuid.js +16 -0
  55. package/utils/uuid.js.map +1 -0
  56. package/.eslintignore +0 -2
  57. package/.eslintrc +0 -26
  58. package/CHANGELOG.md +0 -30
  59. package/Dockerfile +0 -15
  60. package/README.md +0 -183
  61. package/_exmaple/assets/scripts/function/function.ts +0 -99
  62. package/_exmaple/assets/scripts/index.ts +0 -101
  63. package/_exmaple/assets/scripts/request.ts +0 -11
  64. package/_exmaple/index.html +0 -15
  65. package/_exmaple/package.json +0 -33
  66. package/_exmaple/tsconfig.json +0 -71
  67. package/_exmaple/typings.d.ts +0 -0
  68. package/_exmaple/webpack.config.js +0 -42
  69. package/dist/auth/apis.d.ts +0 -55
  70. package/dist/auth/apis.js +0 -568
  71. package/dist/auth/consts.js +0 -61
  72. package/dist/auth/models.d.ts +0 -354
  73. package/dist/auth/models.js +0 -3
  74. package/dist/captcha/captcha.d.ts +0 -35
  75. package/dist/captcha/captcha.js +0 -267
  76. package/dist/index.d.ts +0 -14
  77. package/dist/index.js +0 -63
  78. package/dist/oauth2client/consts.js +0 -73
  79. package/dist/oauth2client/interface.d.ts +0 -15
  80. package/dist/oauth2client/interface.js +0 -10
  81. package/dist/oauth2client/models.d.ts +0 -47
  82. package/dist/oauth2client/models.js +0 -3
  83. package/dist/oauth2client/oauth2client.d.ts +0 -71
  84. package/dist/oauth2client/oauth2client.js +0 -640
  85. package/dist/utils/function/single-promise.d.ts +0 -5
  86. package/dist/utils/function/single-promise.js +0 -89
  87. package/dist/utils/uuid.d.ts +0 -1
  88. package/dist/utils/uuid.js +0 -12
  89. package/publish.sh +0 -2
  90. package/src/auth/apis.ts +0 -642
  91. package/src/auth/consts.ts +0 -57
  92. package/src/auth/models.ts +0 -444
  93. package/src/captcha/captcha.ts +0 -222
  94. package/src/index.ts +0 -49
  95. package/src/oauth2client/consts.ts +0 -69
  96. package/src/oauth2client/interface.ts +0 -57
  97. package/src/oauth2client/models.ts +0 -61
  98. package/src/oauth2client/oauth2client.ts +0 -620
  99. package/src/utils/function/single-promise.ts +0 -40
  100. package/src/utils/uuid.ts +0 -11
  101. package/tsconfig.json +0 -44
  102. package/wiki/README.md +0 -75
package/auth/index.js ADDED
@@ -0,0 +1,551 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Auth = exports.getAuth = exports.DeviceAuthorizeState = exports.VerificationUsages = exports.ErrorType = void 0;
4
+ const consts_1 = require("./consts");
5
+ const oauthclient_1 = require("../oauthclient");
6
+ const captcha_1 = require("../captcha");
7
+ const internal_1 = require("../app/internal");
8
+ var consts_2 = require("./consts");
9
+ Object.defineProperty(exports, "ErrorType", { enumerable: true, get: function () { return consts_2.ErrorType; } });
10
+ Object.defineProperty(exports, "VerificationUsages", { enumerable: true, get: function () { return consts_2.VerificationUsages; } });
11
+ Object.defineProperty(exports, "DeviceAuthorizeState", { enumerable: true, get: function () { return consts_2.DeviceAuthorizeState; } });
12
+ /**
13
+ * Returns the existing `Auth` instance that is associated with the app
14
+ */
15
+ function getAuth(app, initOptions) {
16
+ return (0, internal_1._getComponent)(app, "auth", () => {
17
+ const credentialsClient = (0, oauthclient_1.getOAuthClient)(app, initOptions);
18
+ const baseRequest = credentialsClient.request.bind(credentialsClient);
19
+ const captcha = (0, captcha_1.getCaptcha)(app, { request: baseRequest });
20
+ return new Auth({
21
+ credentialsClient: credentialsClient,
22
+ captcha: captcha,
23
+ });
24
+ });
25
+ }
26
+ exports.getAuth = getAuth;
27
+ /**
28
+ * Auth
29
+ */
30
+ class Auth {
31
+ /**
32
+ * constructor
33
+ * @param {AuthOptions} opts
34
+ */
35
+ constructor(opts) {
36
+ this.request = opts.captcha.request.bind(opts.captcha);
37
+ this.credentialsClient = opts.credentialsClient;
38
+ }
39
+ /**
40
+ * Sign in.
41
+ * @param {SignInRequest} params A SignInRequest Object.
42
+ * @return {Promise<Credentials>} A Promise<Credentials> object.
43
+ */
44
+ async signIn(params) {
45
+ const credentials = await this.request(consts_1.ApiUrls.AUTH_SIGN_IN_URL, {
46
+ method: "POST",
47
+ withBasicAuth: true,
48
+ body: params,
49
+ });
50
+ await this.credentialsClient.setCredentials(credentials);
51
+ return Promise.resolve(credentials);
52
+ }
53
+ /**
54
+ * Sign in Anonymously
55
+ * @return {Promise<Credentials>} A Promise<Credentials> object.
56
+ */
57
+ async signInAnonymously() {
58
+ const credentials = await this.request(consts_1.ApiUrls.AUTH_SIGN_IN_ANONYMOUSLY_URL, {
59
+ method: "POST",
60
+ withBasicAuth: true,
61
+ body: {},
62
+ });
63
+ await this.credentialsClient.setCredentials(credentials);
64
+ return Promise.resolve(credentials);
65
+ }
66
+ /**
67
+ * Sign up.
68
+ * @param {SignUpRequest} params A SignUpRequest Object.
69
+ * @return {Promise<Credentials>} A Promise<Credentials> object.
70
+ */
71
+ async signUp(params) {
72
+ const data = await this.request(consts_1.ApiUrls.AUTH_SIGN_UP_URL, {
73
+ method: "POST",
74
+ withBasicAuth: true,
75
+ body: params,
76
+ });
77
+ await this.credentialsClient.setCredentials(data);
78
+ return Promise.resolve(data);
79
+ }
80
+ /**
81
+ * Sign out.
82
+ * @return {Object} A Promise<void> object.
83
+ */
84
+ async signOut() {
85
+ var resp = {};
86
+ try {
87
+ resp = await this.request(consts_1.ApiUrls.AUTH_REVOKE_URL, {
88
+ method: "POST",
89
+ withCredentials: true,
90
+ });
91
+ }
92
+ catch (err) {
93
+ if (err.error !== oauthclient_1.ErrorType.UNAUTHENTICATED) {
94
+ console.log("sign_out_error", err);
95
+ }
96
+ }
97
+ await this.credentialsClient.setCredentials();
98
+ return resp;
99
+ }
100
+ /**
101
+ * Revoke All Devices
102
+ * @return {Object} A Promise<void> object.
103
+ */
104
+ async revokeAllDevices() {
105
+ await this.request(consts_1.ApiUrls.AUTH_REVOKE_ALL_URL, {
106
+ method: "DELETE",
107
+ withCredentials: true,
108
+ });
109
+ }
110
+ /**
111
+ * Revoke Device
112
+ * @return {Object} A Promise<void> object.
113
+ */
114
+ async revokeDevice(params) {
115
+ await this.request(consts_1.ApiUrls.AUTHORIZED_DEVICES_DELETE_URL + params.device_id, {
116
+ method: "DELETE",
117
+ withCredentials: true,
118
+ });
119
+ }
120
+ /**
121
+ * Send the VerificationCode.
122
+ * @param {SendVerificationCodeRequest} params A GetVerificationRequest Object.
123
+ * @return {Promise<SendVerificationCodeResponse>} A Promise<GetVerificationResponse> object.
124
+ */
125
+ async sendVerificationCode(params) {
126
+ let withBasicAuth = false;
127
+ let withCredentials = false;
128
+ // 发送短信时,如果时给当前用户发,则需要带上鉴权信息
129
+ if (params.target == "CUR_USER") {
130
+ withCredentials = true;
131
+ }
132
+ else {
133
+ const hasLogin = await this.hasLoginState();
134
+ if (hasLogin) {
135
+ withCredentials = true;
136
+ }
137
+ else {
138
+ withBasicAuth = true;
139
+ }
140
+ }
141
+ return this.request(consts_1.ApiUrls.VERIFICATION_URL, {
142
+ method: "POST",
143
+ withBasicAuth: withBasicAuth,
144
+ withCredentials: withCredentials,
145
+ body: params,
146
+ withCaptcha: true,
147
+ });
148
+ }
149
+ /**
150
+ * Verify the code
151
+ * @param {VerifyRequest} params A VerifyRequest Object.
152
+ * @return {Promise<VerifyResponse>} A Promise<VerifyResponse> object.
153
+ */
154
+ async verify(params) {
155
+ return this.request(consts_1.ApiUrls.VERIFY_URL, {
156
+ method: "POST",
157
+ withBasicAuth: true,
158
+ body: params,
159
+ });
160
+ }
161
+ /**
162
+ * Reset Password
163
+ * @param params A ResetPasswordRequest Object
164
+ */
165
+ async resetPassword(params) {
166
+ return this.request(consts_1.ApiUrls.RESET_PASSWORD_URL, {
167
+ method: "POST",
168
+ withBasicAuth: true,
169
+ body: params,
170
+ });
171
+ }
172
+ /**
173
+ * Gen provider redirect uri.
174
+ * @param {GenProviderRedirectUriRequest} params A GenProviderRedirectUriRequest object.
175
+ * @return {Promise<GenProviderRedirectUriResponse>} A Promise<GenProviderRedirectUriResponse> object.
176
+ */
177
+ async genProviderRedirectUri(params) {
178
+ const otherParams = params.other_params;
179
+ delete params.other_params;
180
+ let url = `${consts_1.ApiUrls.PROVIDER_URI_URL}?${Auth.parseParamsToSearch(params)}`;
181
+ if (otherParams) {
182
+ otherParams.forEach((value, key) => {
183
+ url += `&other_params[${key}]=${encodeURIComponent(value)}`;
184
+ });
185
+ }
186
+ return this.request(url, {
187
+ method: "GET",
188
+ withBasicAuth: true,
189
+ });
190
+ }
191
+ /**
192
+ * Grant provider token.
193
+ * @param {GrantProviderTokenRequest} params A GrantProviderTokenRequest object.
194
+ * @return {Promise<GrantProviderTokenResponse>} A Promise<GrantProviderTokenResponse> object.
195
+ */
196
+ async grantProviderToken(params) {
197
+ return this.request(consts_1.ApiUrls.PROVIDER_TOKEN_URL, {
198
+ method: "POST",
199
+ withBasicAuth: true,
200
+ body: params,
201
+ });
202
+ }
203
+ /**
204
+ * Grant provider token.
205
+ * @param {PatchProviderTokenRequest} params A PatchProviderTokenRequest object.
206
+ * @return {Promise<PatchProviderTokenResponse>} A Promise<PatchProviderTokenResponse> object.
207
+ */
208
+ async patchProviderToken(params) {
209
+ return this.request(consts_1.ApiUrls.PROVIDER_TOKEN_URL, {
210
+ method: "PATCH",
211
+ withBasicAuth: true,
212
+ body: params,
213
+ });
214
+ }
215
+ /**
216
+ * Signin with provider request.
217
+ * @param {SignInWithProviderRequest} params A SignInWithProviderRequest object.
218
+ * @return {Promise<Credentials>} A Promise<Credentials> object.
219
+ */
220
+ async signInWithProvider(params) {
221
+ const credentials = await this.request(consts_1.ApiUrls.AUTH_SIGN_IN_WITH_PROVIDER_URL, {
222
+ method: "POST",
223
+ withBasicAuth: true,
224
+ body: params,
225
+ });
226
+ await this.credentialsClient.setCredentials(credentials);
227
+ return Promise.resolve(credentials);
228
+ }
229
+ /**
230
+ * Bind with provider
231
+ * @param {BindWithProviderRequest} params A BindWithProviderRequest object.
232
+ * @return {Promise<void>} A Promise<void> object.
233
+ */
234
+ async bindWithProvider(params) {
235
+ return this.request(consts_1.ApiUrls.PROVIDER_BIND_URL, {
236
+ method: "POST",
237
+ withBasicAuth: true,
238
+ body: params,
239
+ withCredentials: true,
240
+ });
241
+ }
242
+ /**
243
+ * Get the user profile.
244
+ * @return {Promise<UserProfile>} A Promise<UserProfile> object.
245
+ */
246
+ async getUserProfile() {
247
+ return this.request(consts_1.ApiUrls.USER_ME_URL, {
248
+ method: "GET",
249
+ withCredentials: true,
250
+ });
251
+ }
252
+ /**
253
+ * Get the user profile.
254
+ * @return {Promise<UserProfile>} A Promise<UserProfile> object.
255
+ */
256
+ async updateUserProfile(params) {
257
+ return this.request(consts_1.ApiUrls.USER_ME_URL, {
258
+ method: "PATCH",
259
+ withCredentials: true,
260
+ body: params,
261
+ });
262
+ }
263
+ /**
264
+ * hasLoginState check if has login state
265
+ * @return {Promise<boolean>} A Promise<boolean> object.
266
+ */
267
+ async hasLoginState() {
268
+ try {
269
+ await this.credentialsClient.getAccessToken();
270
+ return true;
271
+ }
272
+ catch (err) {
273
+ if (err.error === oauthclient_1.ErrorType.UNAUTHENTICATED) {
274
+ return false;
275
+ }
276
+ return Promise.reject(err);
277
+ }
278
+ }
279
+ /**
280
+ * loginScope return scope of current token
281
+ * @return {Promise<string>} A Promise<string> object.
282
+ */
283
+ async loginScope() {
284
+ return this.credentialsClient.getScope();
285
+ }
286
+ /**
287
+ * Trans by provider.
288
+ * @param {TransByProviderRequest} params A TransByProviderRequest object.
289
+ * @return {Promise<Credentials>} A Promise<Credentials> object.
290
+ */
291
+ async transByProvider(params) {
292
+ return this.request(consts_1.ApiUrls.USER_TRANS_BY_PROVIDER_URL, {
293
+ method: "PATCH",
294
+ body: params,
295
+ withCredentials: true,
296
+ });
297
+ }
298
+ /**
299
+ * Grant token.
300
+ * @param {GrantTokenRequest} params A GrantTokenRequest object.
301
+ * @return {Promise<Credentials>} A Promise<Credentials> object.
302
+ */
303
+ async grantToken(params) {
304
+ const credentials = await this.request(consts_1.ApiUrls.AUTH_TOKEN_URL, {
305
+ method: "POST",
306
+ withBasicAuth: true,
307
+ body: params,
308
+ });
309
+ await this.credentialsClient.setCredentials(credentials);
310
+ return Promise.resolve(credentials);
311
+ }
312
+ /**
313
+ * Get the provide list.
314
+ * @return {Promise<ProvidersResponse>} A Promise<UserProfileProviderList> object.
315
+ */
316
+ async getProviders() {
317
+ return this.request(consts_1.ApiUrls.PROVIDER_LIST_URL, {
318
+ method: "GET",
319
+ withCredentials: true,
320
+ });
321
+ }
322
+ /**
323
+ * check if username is exist
324
+ * @param params CheckIfUserExistRequest
325
+ */
326
+ async checkIfUserExist(params) {
327
+ const url = `${consts_1.ApiUrls.USER_ME_URL}?${Auth.parseParamsToSearch(params)}`;
328
+ return this.request(url, {
329
+ method: "GET",
330
+ });
331
+ }
332
+ /**
333
+ * unbind provider.
334
+ * @param {UnbindProviderRequest} params
335
+ * @return {Promise<void>}
336
+ */
337
+ async unbindProvider(params) {
338
+ return this.request(`${consts_1.ApiUrls.PROVIDER_UNBIND_URL}/${params.provider_id}`, {
339
+ method: "DELETE",
340
+ withCredentials: true,
341
+ });
342
+ }
343
+ /**
344
+ * check Password.
345
+ * @param {CheckPasswordRequest} params
346
+ * @return {Promise<void>}
347
+ */
348
+ async checkPassword(params) {
349
+ return this.request(`${consts_1.ApiUrls.SUDO_URL}`, {
350
+ method: "POST",
351
+ withCredentials: true,
352
+ body: params,
353
+ });
354
+ }
355
+ /**
356
+ * Edit Contact 修改 手机号 或 邮箱
357
+ * @param {EditContactRequest} params
358
+ * @return {Promise<void>}
359
+ */
360
+ async editContact(params) {
361
+ return this.request(`${consts_1.ApiUrls.EDIT_CONTACT_URL}`, {
362
+ method: "PATCH",
363
+ withCredentials: true,
364
+ body: params,
365
+ });
366
+ }
367
+ /**
368
+ * Set Password.
369
+ * @param {SetPasswordRequest} params
370
+ * @return {Promise<void>}
371
+ */
372
+ async setPassword(params) {
373
+ return this.request(`${consts_1.ApiUrls.AUTH_SET_PASSWORD_URL}`, {
374
+ method: "PATCH",
375
+ withCredentials: true,
376
+ body: params,
377
+ });
378
+ }
379
+ /**
380
+ * updatePasswordByOld 使用旧密码修改密码,如果已经绑定手机号,请先:sudo,再修改密码
381
+ * @param {UpdatePasswordRequest} params
382
+ * @return {Promise<void>}
383
+ */
384
+ async updatePasswordByOld(params) {
385
+ const sudoToken = await this.sudo({ password: params.old_password });
386
+ return this.setPassword({
387
+ sudo_token: sudoToken.sudo_token,
388
+ new_password: params.new_password,
389
+ });
390
+ }
391
+ /**
392
+ * sudo
393
+ * @param {sudo} params
394
+ * @return {Promise<SudoResponse>}
395
+ */
396
+ async sudo(params) {
397
+ return this.request(`${consts_1.ApiUrls.SUDO_URL}`, {
398
+ method: "POST",
399
+ withCredentials: true,
400
+ body: params,
401
+ });
402
+ }
403
+ /**
404
+ * Get the current user verification.
405
+ * @param {SendVerificationCodeRequest} params A SendVerificationCodeToCurrentUser Object.
406
+ * @return {Promise<SendVerificationCodeResponse>} A Promise<SendVerificationCodeResponse> object.
407
+ */
408
+ async SendVerificationCodeToCurrentUser(params) {
409
+ params.target = "CUR_USER";
410
+ return this.request(consts_1.ApiUrls.VERIFICATION_URL, {
411
+ method: "POST",
412
+ body: params,
413
+ withCredentials: true,
414
+ withCaptcha: true,
415
+ });
416
+ }
417
+ /**
418
+ * change Bound provider.
419
+ * @param {ChangeBoundProviderRequest} params A GetVerificationRequest Object.
420
+ * @return {Promise<ChangeBoundProviderResponse>} A Promise<GetVerificationResponse> object.
421
+ */
422
+ async changeBoundProvider(params) {
423
+ return this.request(`${consts_1.ApiUrls.PROVIDER_LIST_URL}/${params.provider_id}/trans`, {
424
+ method: "POST",
425
+ body: {
426
+ provider_trans_token: params.trans_token,
427
+ },
428
+ withCredentials: true,
429
+ });
430
+ }
431
+ /**
432
+ * set the user profile.
433
+ * @param {UserProfile} params A UserProfile Object.
434
+ * @return {Promise<UserProfile>} A Promise<UserProfile> object.
435
+ */
436
+ async setUserProfile(params) {
437
+ return this.request(consts_1.ApiUrls.USER_PROFILE_URL, {
438
+ method: "PATCH",
439
+ body: params,
440
+ withCredentials: true,
441
+ });
442
+ }
443
+ /**
444
+ * Delete me
445
+ * @param params
446
+ */
447
+ async deleteMe(params) {
448
+ const url = `${consts_1.ApiUrls.USER_ME_URL}?${Auth.parseParamsToSearch(params)}`;
449
+ return this.request(url, {
450
+ method: "DELETE",
451
+ withCredentials: true,
452
+ });
453
+ }
454
+ /**
455
+ * setCustomSignFunc set the get ticket function
456
+ * @param getTickFn
457
+ */
458
+ setCustomSignFunc(getTickFn) {
459
+ this._getCustomSignTicketFn = getTickFn;
460
+ }
461
+ /**
462
+ * SignInWithCustomTicket custom signIn
463
+ * @constructor
464
+ */
465
+ async SignInWithCustomTicket() {
466
+ const customSignTicketFn = this._getCustomSignTicketFn;
467
+ if (!customSignTicketFn) {
468
+ return Promise.reject({
469
+ error: "failed_precondition",
470
+ error_description: "please use setCustomSignFunc to set custom sign function",
471
+ });
472
+ }
473
+ const customTicket = await customSignTicketFn();
474
+ return this.signInWithProvider({
475
+ provider_id: "custom",
476
+ provider_token: customTicket,
477
+ });
478
+ }
479
+ /**
480
+ * queryUserProfile query user profile
481
+ * @param params queryUserProfile query user profile
482
+ */
483
+ async queryUserProfile(params) {
484
+ const url = `${consts_1.ApiUrls.USER_QUERY_URL}?${Auth.parseParamsToSearch(params)}`;
485
+ return this.request(url, {
486
+ method: "GET",
487
+ withCredentials: true,
488
+ });
489
+ }
490
+ /**
491
+ * Authorize oauth Authorize
492
+ * @param params
493
+ * @constructor
494
+ */
495
+ async authorize(params) {
496
+ return this.request(consts_1.ApiUrls.AUTHORIZE_URL, {
497
+ method: "POST",
498
+ withCredentials: true,
499
+ body: params,
500
+ });
501
+ }
502
+ /**
503
+ * authorize device
504
+ * @param params
505
+ */
506
+ async authorizeDevice(params) {
507
+ return this.request(consts_1.ApiUrls.AUTHORIZE_DEVICE_URL, {
508
+ method: "POST",
509
+ withCredentials: true,
510
+ body: params,
511
+ });
512
+ }
513
+ async deviceAuthorize(params) {
514
+ return this.request(consts_1.ApiUrls.AUTHORIZE_DEVICE_CODE_URL, {
515
+ method: "POST",
516
+ withBasicAuth: true,
517
+ body: params,
518
+ });
519
+ }
520
+ /**
521
+ * OAuth get authorize info
522
+ * @param params
523
+ * @constructor
524
+ */
525
+ async authorizeInfo(params) {
526
+ const url = `${consts_1.ApiUrls.AUTHORIZE_INFO_URL}?${Auth.parseParamsToSearch(params)}`;
527
+ let withBasicAuth = true;
528
+ let withCredentials = false;
529
+ const hasLogin = await this.hasLoginState();
530
+ if (hasLogin) {
531
+ withCredentials = true;
532
+ withBasicAuth = false;
533
+ }
534
+ return this.request(url, {
535
+ method: "GET",
536
+ withBasicAuth: withBasicAuth,
537
+ withCredentials: withCredentials,
538
+ });
539
+ }
540
+ static parseParamsToSearch(params) {
541
+ for (let key in params) {
542
+ if (!params[key]) {
543
+ delete params[key];
544
+ }
545
+ }
546
+ const searchParams = new URLSearchParams(params);
547
+ return searchParams.toString();
548
+ }
549
+ }
550
+ exports.Auth = Auth;
551
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/auth/index.ts"],"names":[],"mappings":"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"}