@cloudbase/oauth 0.1.1-alpha → 0.1.1-alpha.2
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.
- package/Dockerfile +15 -0
- package/README.md +1 -1
- package/_exmaple/assets/scripts/function/function.ts +99 -0
- package/_exmaple/assets/scripts/index.ts +99 -0
- package/_exmaple/assets/scripts/request.ts +11 -0
- package/_exmaple/index.html +15 -0
- package/_exmaple/package.json +33 -0
- package/_exmaple/tsconfig.json +71 -0
- package/_exmaple/typings.d.ts +0 -0
- package/_exmaple/webpack.config.js +42 -0
- package/cdnjs/1.0.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.0.0/cloudbase.database.js +8 -0
- package/cdnjs/1.0.0/cloudbase.full.js +8 -0
- package/cdnjs/1.0.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.0.0/cloudbase.js +1 -0
- package/cdnjs/1.0.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.0.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.0.1/cloudbase.database.js +8 -0
- package/cdnjs/1.0.1/cloudbase.full.js +8 -0
- package/cdnjs/1.0.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.0.1/cloudbase.js +1 -0
- package/cdnjs/1.0.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.0.2/cloudbase.auth.js +1 -0
- package/cdnjs/1.0.2/cloudbase.database.js +8 -0
- package/cdnjs/1.0.2/cloudbase.full.js +8 -0
- package/cdnjs/1.0.2/cloudbase.functions.js +1 -0
- package/cdnjs/1.0.2/cloudbase.js +1 -0
- package/cdnjs/1.0.2/cloudbase.storage.js +1 -0
- package/cdnjs/1.0.3/cloudbase.auth.js +1 -0
- package/cdnjs/1.0.3/cloudbase.database.js +8 -0
- package/cdnjs/1.0.3/cloudbase.full.js +8 -0
- package/cdnjs/1.0.3/cloudbase.functions.js +1 -0
- package/cdnjs/1.0.3/cloudbase.js +1 -0
- package/cdnjs/1.0.3/cloudbase.storage.js +1 -0
- package/cdnjs/1.0.4/cloudbase.auth.js +1 -0
- package/cdnjs/1.0.4/cloudbase.database.js +8 -0
- package/cdnjs/1.0.4/cloudbase.full.js +8 -0
- package/cdnjs/1.0.4/cloudbase.functions.js +1 -0
- package/cdnjs/1.0.4/cloudbase.js +1 -0
- package/cdnjs/1.0.4/cloudbase.storage.js +1 -0
- package/cdnjs/1.1.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.1.0/cloudbase.database.js +8 -0
- package/cdnjs/1.1.0/cloudbase.full.js +8 -0
- package/cdnjs/1.1.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.1.0/cloudbase.js +1 -0
- package/cdnjs/1.1.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.1.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.1.1/cloudbase.database.js +8 -0
- package/cdnjs/1.1.1/cloudbase.full.js +8 -0
- package/cdnjs/1.1.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.1.1/cloudbase.js +1 -0
- package/cdnjs/1.1.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.1.2/cloudbase.auth.js +1 -0
- package/cdnjs/1.1.2/cloudbase.database.js +8 -0
- package/cdnjs/1.1.2/cloudbase.full.js +8 -0
- package/cdnjs/1.1.2/cloudbase.functions.js +1 -0
- package/cdnjs/1.1.2/cloudbase.js +1 -0
- package/cdnjs/1.1.2/cloudbase.storage.js +1 -0
- package/cdnjs/1.1.3/cloudbase.auth.js +1 -0
- package/cdnjs/1.1.3/cloudbase.database.js +8 -0
- package/cdnjs/1.1.3/cloudbase.full.js +8 -0
- package/cdnjs/1.1.3/cloudbase.functions.js +1 -0
- package/cdnjs/1.1.3/cloudbase.js +1 -0
- package/cdnjs/1.1.3/cloudbase.storage.js +1 -0
- package/cdnjs/1.1.4/cloudbase.auth.js +1 -0
- package/cdnjs/1.1.4/cloudbase.database.js +8 -0
- package/cdnjs/1.1.4/cloudbase.full.js +8 -0
- package/cdnjs/1.1.4/cloudbase.functions.js +1 -0
- package/cdnjs/1.1.4/cloudbase.js +1 -0
- package/cdnjs/1.1.4/cloudbase.storage.js +1 -0
- package/cdnjs/1.2.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.2.1/cloudbase.database.js +8 -0
- package/cdnjs/1.2.1/cloudbase.full.js +8 -0
- package/cdnjs/1.2.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.2.1/cloudbase.js +1 -0
- package/cdnjs/1.2.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.2.2/cloudbase.auth.js +1 -0
- package/cdnjs/1.2.2/cloudbase.database.js +8 -0
- package/cdnjs/1.2.2/cloudbase.full.js +8 -0
- package/cdnjs/1.2.2/cloudbase.functions.js +1 -0
- package/cdnjs/1.2.2/cloudbase.js +1 -0
- package/cdnjs/1.2.2/cloudbase.storage.js +1 -0
- package/cdnjs/1.2.3/cloudbase.auth.js +1 -0
- package/cdnjs/1.2.3/cloudbase.database.js +8 -0
- package/cdnjs/1.2.3/cloudbase.full.js +8 -0
- package/cdnjs/1.2.3/cloudbase.functions.js +1 -0
- package/cdnjs/1.2.3/cloudbase.js +1 -0
- package/cdnjs/1.2.3/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.0/cloudbase.database.js +8 -0
- package/cdnjs/1.3.0/cloudbase.full.js +8 -0
- package/cdnjs/1.3.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.0/cloudbase.js +1 -0
- package/cdnjs/1.3.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.1/cloudbase.database.js +8 -0
- package/cdnjs/1.3.1/cloudbase.full.js +8 -0
- package/cdnjs/1.3.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.1/cloudbase.js +1 -0
- package/cdnjs/1.3.1/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.2/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.2/cloudbase.database.js +8 -0
- package/cdnjs/1.3.2/cloudbase.full.js +8 -0
- package/cdnjs/1.3.2/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.2/cloudbase.js +1 -0
- package/cdnjs/1.3.2/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.2/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.3/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.3/cloudbase.database.js +8 -0
- package/cdnjs/1.3.3/cloudbase.full.js +8 -0
- package/cdnjs/1.3.3/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.3/cloudbase.js +1 -0
- package/cdnjs/1.3.3/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.3/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.database.js +8 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.full.js +8 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.4-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.5/cloudbase.analytics.js +1 -0
- package/cdnjs/1.3.5/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.5/cloudbase.database.js +10 -0
- package/cdnjs/1.3.5/cloudbase.full.js +10 -0
- package/cdnjs/1.3.5/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.5/cloudbase.js +1 -0
- package/cdnjs/1.3.5/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.5/cloudbase.storage.js +1 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.database.js +10 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.full.js +10 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.3.5-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.4.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.4.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.4.0/cloudbase.database.js +10 -0
- package/cdnjs/1.4.0/cloudbase.full.js +10 -0
- package/cdnjs/1.4.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.4.0/cloudbase.js +1 -0
- package/cdnjs/1.4.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.4.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.4.1/cloudbase.analytics.js +1 -0
- package/cdnjs/1.4.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.4.1/cloudbase.database.js +10 -0
- package/cdnjs/1.4.1/cloudbase.full.js +10 -0
- package/cdnjs/1.4.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.4.1/cloudbase.js +1 -0
- package/cdnjs/1.4.1/cloudbase.realtime.js +1 -0
- package/cdnjs/1.4.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.database.js +10 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.full.js +10 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.4.1-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.database.js +10 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.full.js +10 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.4.2-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.5.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.5.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.5.0/cloudbase.database.js +10 -0
- package/cdnjs/1.5.0/cloudbase.full.js +10 -0
- package/cdnjs/1.5.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.5.0/cloudbase.js +1 -0
- package/cdnjs/1.5.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.5.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.5.1/cloudbase.analytics.js +1 -0
- package/cdnjs/1.5.1/cloudbase.auth.js +1 -0
- package/cdnjs/1.5.1/cloudbase.database.js +26 -0
- package/cdnjs/1.5.1/cloudbase.full.js +26 -0
- package/cdnjs/1.5.1/cloudbase.functions.js +1 -0
- package/cdnjs/1.5.1/cloudbase.js +1 -0
- package/cdnjs/1.5.1/cloudbase.realtime.js +1 -0
- package/cdnjs/1.5.1/cloudbase.storage.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.database.js +10 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.full.js +10 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.5.1-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.database.js +26 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.full.js +26 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.5.3-alpha.0/cloudbase.storage.js +1 -0
- package/cdnjs/1.6.0/cloudbase.analytics.js +1 -0
- package/cdnjs/1.6.0/cloudbase.auth.js +1 -0
- package/cdnjs/1.6.0/cloudbase.database.js +26 -0
- package/cdnjs/1.6.0/cloudbase.full.js +26 -0
- package/cdnjs/1.6.0/cloudbase.functions.js +1 -0
- package/cdnjs/1.6.0/cloudbase.js +1 -0
- package/cdnjs/1.6.0/cloudbase.realtime.js +1 -0
- package/cdnjs/1.6.0/cloudbase.storage.js +1 -0
- package/{CHANGELOG.md → changelog.md} +0 -0
- package/dist/README.md +153 -0
- package/{app → dist/app}/index.d.ts +1 -0
- package/{app → dist/app}/index.js +0 -0
- package/dist/app/index.js.map +1 -0
- package/{app → dist/app}/internal.d.ts +0 -0
- package/{app → dist/app}/internal.js +0 -0
- package/{app → dist/app}/internal.js.map +0 -0
- package/{app → dist/app}/openuri.d.ts +0 -0
- package/{app → dist/app}/openuri.js +2 -1
- package/{app → dist/app}/openuri.js.map +1 -1
- package/{app → dist/app}/request.d.ts +4 -3
- package/{app → dist/app}/request.js +20 -12
- package/dist/app/request.js.map +1 -0
- package/{app → dist/app}/storage.d.ts +0 -0
- package/{app → dist/app}/storage.js +0 -0
- package/{app → dist/app}/storage.js.map +0 -0
- package/{auth → dist/auth}/consts.d.ts +21 -4
- package/{auth → dist/auth}/consts.js +27 -5
- package/dist/auth/consts.js.map +1 -0
- package/{auth → dist/auth}/index.d.ts +83 -34
- package/{auth → dist/auth}/index.js +239 -92
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/models.d.ts +284 -0
- package/{oauthclient → dist/auth}/models.js +1 -0
- package/dist/auth/models.js.map +1 -0
- package/{captcha → dist/captcha}/index.d.ts +0 -0
- package/{captcha → dist/captcha}/index.js +4 -2
- package/dist/captcha/index.js.map +1 -0
- package/dist/changelog.md +30 -0
- package/dist/function/index.d.ts +38 -0
- package/dist/function/index.js +80 -0
- package/dist/function/index.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.js +24 -0
- package/dist/index.js.map +1 -0
- package/{oauthclient → dist/oauthclient}/consts.d.ts +0 -0
- package/{oauthclient → dist/oauthclient}/consts.js +0 -0
- package/{oauthclient → dist/oauthclient}/consts.js.map +0 -0
- package/{oauthclient → dist/oauthclient}/index.d.ts +0 -0
- package/{oauthclient → dist/oauthclient}/index.js +2 -2
- package/dist/oauthclient/index.js.map +1 -0
- package/{oauthclient → dist/oauthclient}/interface.d.ts +4 -0
- package/{oauthclient → dist/oauthclient}/interface.js +0 -0
- package/{oauthclient → dist/oauthclient}/interface.js.map +1 -1
- package/{oauthclient → dist/oauthclient}/models.d.ts +12 -11
- package/{auth → dist/oauthclient}/models.js +0 -0
- package/{oauthclient → dist/oauthclient}/models.js.map +0 -0
- package/{oauthclient → dist/oauthclient}/oauthclient.d.ts +11 -7
- package/{oauthclient → dist/oauthclient}/oauthclient.js +27 -12
- package/dist/oauthclient/oauthclient.js.map +1 -0
- package/dist/package.json +32 -0
- package/{utils/single-promise.d.ts → dist/utils/promise.d.ts} +3 -3
- package/{utils/single-promise.js → dist/utils/promise.js} +6 -6
- package/dist/utils/promise.js.map +1 -0
- package/{utils → dist/utils}/uuid.d.ts +0 -0
- package/{utils → dist/utils}/uuid.js +0 -0
- package/{utils → dist/utils}/uuid.js.map +0 -0
- package/docs/dev.md +71 -0
- package/docs/errlog.md +79 -0
- package/package.json +3 -2
- package/publish.sh +2 -0
- package/src/app/index.ts +83 -0
- package/src/app/internal.ts +26 -0
- package/src/app/openuri.ts +111 -0
- package/src/app/request.ts +66 -0
- package/src/app/storage.ts +58 -0
- package/src/auth/consts.ts +74 -0
- package/src/auth/index.ts +718 -0
- package/src/auth/models.ts +352 -0
- package/src/captcha/index.ts +170 -0
- package/src/function/index.ts +103 -0
- package/src/index.ts +32 -0
- package/src/oauthclient/consts.ts +48 -0
- package/src/oauthclient/index.ts +33 -0
- package/src/oauthclient/interface.ts +34 -0
- package/src/oauthclient/models.ts +50 -0
- package/src/oauthclient/oauthclient.ts +487 -0
- package/src/utils/promise.ts +41 -0
- package/src/utils/uuid.ts +11 -0
- package/test/e2e/cases/custom-login.test.js +122 -0
- package/test/e2e/cases/index.test.js +61 -0
- package/test/e2e/cases/login-state.test.js +89 -0
- package/test/e2e/environment.js +39 -0
- package/test/e2e/global_setup.js +33 -0
- package/test/e2e/global_teardown.js +15 -0
- package/test/e2e/setup.js +37 -0
- package/test/unit/index.test.js +89 -0
- package/test/web/cases/auth/index.js +256 -0
- package/test/web/cases/database/collection.js +173 -0
- package/test/web/cases/database/command.js +754 -0
- package/test/web/cases/database/date.js +122 -0
- package/test/web/cases/database/db.js +20 -0
- package/test/web/cases/database/document.js +160 -0
- package/test/web/cases/database/geo-advanced.js +327 -0
- package/test/web/cases/database/geo.js +105 -0
- package/test/web/cases/database/index.js +315 -0
- package/test/web/cases/database/order.js +83 -0
- package/test/web/cases/database/realtime.js +102 -0
- package/test/web/cases/database/regex.js +140 -0
- package/test/web/cases/ext/index.js +88 -0
- package/test/web/cases/function/index.js +77 -0
- package/test/web/cases/storage/cos.jpeg +0 -0
- package/test/web/cases/storage/index.js +207 -0
- package/test/web/index.html +63 -0
- package/test/web/index.js +109 -0
- package/test/web/util.js +80 -0
- package/tsconfig.json +35 -0
- package/wiki/README.md +75 -0
- package/app/index.js.map +0 -1
- package/app/request.js.map +0 -1
- package/auth/consts.js.map +0 -1
- package/auth/index.js.map +0 -1
- package/auth/models.d.ts +0 -158
- package/auth/models.js.map +0 -1
- package/captcha/index.js.map +0 -1
- package/index.d.ts +0 -8
- package/index.js +0 -17
- package/index.js.map +0 -1
- package/oauthclient/index.js.map +0 -1
- package/oauthclient/oauthclient.js.map +0 -1
- package/utils/single-promise.js.map +0 -1
|
@@ -0,0 +1,718 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
import { ApiUrls } from "./consts";
|
|
3
|
+
import {
|
|
4
|
+
UserProfile,
|
|
5
|
+
SignInRequest,
|
|
6
|
+
SignUpRequest,
|
|
7
|
+
VerifyRequest,
|
|
8
|
+
VerifyResponse,
|
|
9
|
+
GenProviderRedirectUriRequest,
|
|
10
|
+
GenProviderRedirectUriResponse,
|
|
11
|
+
GrantProviderTokenRequest,
|
|
12
|
+
GrantProviderTokenResponse,
|
|
13
|
+
PatchProviderTokenRequest,
|
|
14
|
+
PatchProviderTokenResponse,
|
|
15
|
+
SignInWithProviderRequest,
|
|
16
|
+
BindWithProviderRequest,
|
|
17
|
+
TransByProviderRequest,
|
|
18
|
+
GrantTokenRequest,
|
|
19
|
+
UnbindProviderRequest,
|
|
20
|
+
CheckPasswordRequest,
|
|
21
|
+
SetPasswordRequest,
|
|
22
|
+
ChangeBoundProviderRequest,
|
|
23
|
+
ChangeBoundProviderResponse,
|
|
24
|
+
QueryUserProfileRequest,
|
|
25
|
+
UpdatePasswordRequest,
|
|
26
|
+
SudoRequest,
|
|
27
|
+
SudoResponse,
|
|
28
|
+
QueryUserProfileResponse,
|
|
29
|
+
EditContactRequest,
|
|
30
|
+
CheckIfUserExistResponse,
|
|
31
|
+
CheckIfUserExistRequest,
|
|
32
|
+
SendVerificationCodeRequest,
|
|
33
|
+
SendVerificationCodeResponse,
|
|
34
|
+
ResetPasswordRequest,
|
|
35
|
+
AuthorizeRequest,
|
|
36
|
+
AuthorizeResponse,
|
|
37
|
+
AuthorizeInfoRequest,
|
|
38
|
+
AuthorizeInfoResponse,
|
|
39
|
+
RevokeDeviceRequest,
|
|
40
|
+
WithSudoRequest,
|
|
41
|
+
AuthorizeDeviceRequest,
|
|
42
|
+
DeviceAuthorizeRequest,
|
|
43
|
+
DeviceAuthorizeResponse,
|
|
44
|
+
ProvidersResponse,
|
|
45
|
+
} from "./models";
|
|
46
|
+
|
|
47
|
+
import {
|
|
48
|
+
getOAuthClient,
|
|
49
|
+
Credentials,
|
|
50
|
+
AuthClient,
|
|
51
|
+
ResponseError,
|
|
52
|
+
ErrorType as oauthErrorType,
|
|
53
|
+
} from "../oauthclient";
|
|
54
|
+
import { getCaptcha, Captcha } from "../captcha";
|
|
55
|
+
import { App, RequestFn as appRequestFn } from "../app";
|
|
56
|
+
import { _getComponent } from "../app/internal";
|
|
57
|
+
|
|
58
|
+
export { ErrorType, VerificationUsages, DeviceAuthorizeState } from "./consts";
|
|
59
|
+
export { ResponseError } from "../oauthclient";
|
|
60
|
+
|
|
61
|
+
export interface AuthOptions {
|
|
62
|
+
credentialsClient: AuthClient;
|
|
63
|
+
captcha: Captcha;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* Returns the existing `Auth` instance that is associated with the app
|
|
68
|
+
*/
|
|
69
|
+
export function getAuth(app: App, initOptions?: any): Auth {
|
|
70
|
+
return _getComponent<Auth>(
|
|
71
|
+
app,
|
|
72
|
+
"auth",
|
|
73
|
+
(): Auth => {
|
|
74
|
+
const credentialsClient = getOAuthClient(app, initOptions);
|
|
75
|
+
const baseRequest = credentialsClient.request.bind(credentialsClient);
|
|
76
|
+
const captcha = getCaptcha(app, { request: baseRequest });
|
|
77
|
+
return new Auth({
|
|
78
|
+
credentialsClient: credentialsClient,
|
|
79
|
+
captcha: captcha,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
export type GetCustomSignTicketFn = () => Promise<string>;
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Auth
|
|
89
|
+
*/
|
|
90
|
+
export class Auth {
|
|
91
|
+
public readonly request: appRequestFn;
|
|
92
|
+
public readonly credentialsClient: AuthClient;
|
|
93
|
+
private _getCustomSignTicketFn?: GetCustomSignTicketFn;
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* constructor
|
|
97
|
+
* @param {AuthOptions} opts
|
|
98
|
+
*/
|
|
99
|
+
constructor(opts: AuthOptions) {
|
|
100
|
+
this.request = opts.captcha.request.bind(opts.captcha);
|
|
101
|
+
this.credentialsClient = opts.credentialsClient;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/**
|
|
105
|
+
* Sign in.
|
|
106
|
+
* @param {SignInRequest} params A SignInRequest Object.
|
|
107
|
+
* @return {Promise<Credentials>} A Promise<Credentials> object.
|
|
108
|
+
*/
|
|
109
|
+
public async signIn(params: SignInRequest): Promise<Credentials> {
|
|
110
|
+
const credentials: Credentials = await this.request<Credentials>(
|
|
111
|
+
ApiUrls.AUTH_SIGN_IN_URL,
|
|
112
|
+
{
|
|
113
|
+
method: "POST",
|
|
114
|
+
withBasicAuth: true,
|
|
115
|
+
body: params,
|
|
116
|
+
}
|
|
117
|
+
);
|
|
118
|
+
await this.credentialsClient.setCredentials(credentials);
|
|
119
|
+
return Promise.resolve(credentials);
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
/**
|
|
123
|
+
* Sign in Anonymously
|
|
124
|
+
* @return {Promise<Credentials>} A Promise<Credentials> object.
|
|
125
|
+
*/
|
|
126
|
+
public async signInAnonymously(): Promise<Credentials> {
|
|
127
|
+
const credentials: Credentials = await this.request<Credentials>(
|
|
128
|
+
ApiUrls.AUTH_SIGN_IN_ANONYMOUSLY_URL,
|
|
129
|
+
{
|
|
130
|
+
method: "POST",
|
|
131
|
+
withBasicAuth: true,
|
|
132
|
+
body: {},
|
|
133
|
+
}
|
|
134
|
+
);
|
|
135
|
+
await this.credentialsClient.setCredentials(credentials);
|
|
136
|
+
return Promise.resolve(credentials);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* Sign up.
|
|
141
|
+
* @param {SignUpRequest} params A SignUpRequest Object.
|
|
142
|
+
* @return {Promise<Credentials>} A Promise<Credentials> object.
|
|
143
|
+
*/
|
|
144
|
+
public async signUp(params: SignUpRequest): Promise<Credentials> {
|
|
145
|
+
const data: Credentials = await this.request<Credentials>(
|
|
146
|
+
ApiUrls.AUTH_SIGN_UP_URL,
|
|
147
|
+
{
|
|
148
|
+
method: "POST",
|
|
149
|
+
withBasicAuth: true,
|
|
150
|
+
body: params,
|
|
151
|
+
}
|
|
152
|
+
);
|
|
153
|
+
await this.credentialsClient.setCredentials(data);
|
|
154
|
+
return Promise.resolve(data);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
/**
|
|
158
|
+
* Sign out.
|
|
159
|
+
* @return {Object} A Promise<void> object.
|
|
160
|
+
*/
|
|
161
|
+
public async signOut(): Promise<void> {
|
|
162
|
+
try {
|
|
163
|
+
await this.request<void>(ApiUrls.AUTH_REVOKE_URL, {
|
|
164
|
+
method: "POST",
|
|
165
|
+
withCredentials: true,
|
|
166
|
+
});
|
|
167
|
+
} catch (err) {
|
|
168
|
+
if ((err as ResponseError).error !== oauthErrorType.UNAUTHENTICATED) {
|
|
169
|
+
console.log("sign_out_error", err);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
await this.credentialsClient.setCredentials();
|
|
173
|
+
return;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/**
|
|
177
|
+
* Revoke All Devices
|
|
178
|
+
* @return {Object} A Promise<void> object.
|
|
179
|
+
*/
|
|
180
|
+
public async revokeAllDevices(): Promise<void> {
|
|
181
|
+
await this.request<void>(ApiUrls.AUTH_REVOKE_ALL_URL, {
|
|
182
|
+
method: "DELETE",
|
|
183
|
+
withCredentials: true,
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
/**
|
|
188
|
+
* Revoke Device
|
|
189
|
+
* @return {Object} A Promise<void> object.
|
|
190
|
+
*/
|
|
191
|
+
public async revokeDevice(params: RevokeDeviceRequest): Promise<void> {
|
|
192
|
+
await this.request<void>(
|
|
193
|
+
ApiUrls.AUTHORIZED_DEVICES_DELETE_URL + params.device_id,
|
|
194
|
+
{
|
|
195
|
+
method: "DELETE",
|
|
196
|
+
withCredentials: true,
|
|
197
|
+
}
|
|
198
|
+
);
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
/**
|
|
202
|
+
* Send the VerificationCode.
|
|
203
|
+
* @param {SendVerificationCodeRequest} params A GetVerificationRequest Object.
|
|
204
|
+
* @return {Promise<SendVerificationCodeResponse>} A Promise<GetVerificationResponse> object.
|
|
205
|
+
*/
|
|
206
|
+
public async sendVerificationCode(
|
|
207
|
+
params: SendVerificationCodeRequest
|
|
208
|
+
): Promise<SendVerificationCodeResponse> {
|
|
209
|
+
let withBasicAuth = false;
|
|
210
|
+
let withCredentials = false;
|
|
211
|
+
// 发送短信时,如果时给当前用户发,则需要带上鉴权信息
|
|
212
|
+
if (params.target == "CUR_USER") {
|
|
213
|
+
withCredentials = true;
|
|
214
|
+
} else {
|
|
215
|
+
const hasLogin = await this.hasLoginState();
|
|
216
|
+
if (hasLogin) {
|
|
217
|
+
withCredentials = true;
|
|
218
|
+
} else {
|
|
219
|
+
withBasicAuth = true;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return this.request<SendVerificationCodeResponse>(
|
|
223
|
+
ApiUrls.VERIFICATION_URL,
|
|
224
|
+
{
|
|
225
|
+
method: "POST",
|
|
226
|
+
withBasicAuth: withBasicAuth,
|
|
227
|
+
withCredentials: withCredentials,
|
|
228
|
+
body: params,
|
|
229
|
+
withCaptcha: true,
|
|
230
|
+
}
|
|
231
|
+
);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
/**
|
|
235
|
+
* Verify the code
|
|
236
|
+
* @param {VerifyRequest} params A VerifyRequest Object.
|
|
237
|
+
* @return {Promise<VerifyResponse>} A Promise<VerifyResponse> object.
|
|
238
|
+
*/
|
|
239
|
+
public async verify(params: VerifyRequest): Promise<VerifyResponse> {
|
|
240
|
+
return this.request<VerifyResponse>(ApiUrls.VERIFY_URL, {
|
|
241
|
+
method: "POST",
|
|
242
|
+
withBasicAuth: true,
|
|
243
|
+
body: params,
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* Reset Password
|
|
249
|
+
* @param params A ResetPasswordRequest Object
|
|
250
|
+
*/
|
|
251
|
+
public async resetPassword(params: ResetPasswordRequest): Promise<void> {
|
|
252
|
+
return this.request<void>(ApiUrls.RESET_PASSWORD_URL, {
|
|
253
|
+
method: "POST",
|
|
254
|
+
withBasicAuth: true,
|
|
255
|
+
body: params,
|
|
256
|
+
});
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* Gen provider redirect uri.
|
|
261
|
+
* @param {GenProviderRedirectUriRequest} params A GenProviderRedirectUriRequest object.
|
|
262
|
+
* @return {Promise<GenProviderRedirectUriResponse>} A Promise<GenProviderRedirectUriResponse> object.
|
|
263
|
+
*/
|
|
264
|
+
public async genProviderRedirectUri(
|
|
265
|
+
params: GenProviderRedirectUriRequest
|
|
266
|
+
): Promise<GenProviderRedirectUriResponse> {
|
|
267
|
+
const otherParams = params.other_params;
|
|
268
|
+
delete params.other_params;
|
|
269
|
+
let url = `${ApiUrls.PROVIDER_URI_URL}?${Auth.parseParamsToSearch(params)}`;
|
|
270
|
+
if (otherParams) {
|
|
271
|
+
otherParams.forEach((value, key) => {
|
|
272
|
+
url += `&other_params[${key}]=${encodeURIComponent(value)}`;
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
return this.request<GenProviderRedirectUriResponse>(url, {
|
|
276
|
+
method: "GET",
|
|
277
|
+
withBasicAuth: true,
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
/**
|
|
282
|
+
* Grant provider token.
|
|
283
|
+
* @param {GrantProviderTokenRequest} params A GrantProviderTokenRequest object.
|
|
284
|
+
* @return {Promise<GrantProviderTokenResponse>} A Promise<GrantProviderTokenResponse> object.
|
|
285
|
+
*/
|
|
286
|
+
public async grantProviderToken(
|
|
287
|
+
params: GrantProviderTokenRequest
|
|
288
|
+
): Promise<GrantProviderTokenResponse> {
|
|
289
|
+
return this.request<GrantProviderTokenResponse>(
|
|
290
|
+
ApiUrls.PROVIDER_TOKEN_URL,
|
|
291
|
+
{
|
|
292
|
+
method: "POST",
|
|
293
|
+
withBasicAuth: true,
|
|
294
|
+
body: params,
|
|
295
|
+
}
|
|
296
|
+
);
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
/**
|
|
300
|
+
* Grant provider token.
|
|
301
|
+
* @param {PatchProviderTokenRequest} params A PatchProviderTokenRequest object.
|
|
302
|
+
* @return {Promise<PatchProviderTokenResponse>} A Promise<PatchProviderTokenResponse> object.
|
|
303
|
+
*/
|
|
304
|
+
public async patchProviderToken(
|
|
305
|
+
params: PatchProviderTokenRequest
|
|
306
|
+
): Promise<PatchProviderTokenResponse> {
|
|
307
|
+
return this.request<PatchProviderTokenResponse>(
|
|
308
|
+
ApiUrls.PROVIDER_TOKEN_URL,
|
|
309
|
+
{
|
|
310
|
+
method: "PATCH",
|
|
311
|
+
withBasicAuth: true,
|
|
312
|
+
body: params,
|
|
313
|
+
}
|
|
314
|
+
);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/**
|
|
318
|
+
* Signin with provider request.
|
|
319
|
+
* @param {SignInWithProviderRequest} params A SignInWithProviderRequest object.
|
|
320
|
+
* @return {Promise<Credentials>} A Promise<Credentials> object.
|
|
321
|
+
*/
|
|
322
|
+
public async signInWithProvider(
|
|
323
|
+
params: SignInWithProviderRequest
|
|
324
|
+
): Promise<Credentials> {
|
|
325
|
+
const credentials: Credentials = await this.request<Credentials>(
|
|
326
|
+
ApiUrls.AUTH_SIGN_IN_WITH_PROVIDER_URL,
|
|
327
|
+
{
|
|
328
|
+
method: "POST",
|
|
329
|
+
withBasicAuth: true,
|
|
330
|
+
body: params,
|
|
331
|
+
}
|
|
332
|
+
);
|
|
333
|
+
await this.credentialsClient.setCredentials(credentials);
|
|
334
|
+
return Promise.resolve(credentials);
|
|
335
|
+
}
|
|
336
|
+
|
|
337
|
+
/**
|
|
338
|
+
* Bind with provider
|
|
339
|
+
* @param {BindWithProviderRequest} params A BindWithProviderRequest object.
|
|
340
|
+
* @return {Promise<void>} A Promise<void> object.
|
|
341
|
+
*/
|
|
342
|
+
public async bindWithProvider(
|
|
343
|
+
params: BindWithProviderRequest
|
|
344
|
+
): Promise<void> {
|
|
345
|
+
return this.request<void>(ApiUrls.PROVIDER_BIND_URL, {
|
|
346
|
+
method: "POST",
|
|
347
|
+
withBasicAuth: true,
|
|
348
|
+
body: params,
|
|
349
|
+
withCredentials: true,
|
|
350
|
+
});
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
/**
|
|
354
|
+
* Get the user profile.
|
|
355
|
+
* @return {Promise<UserProfile>} A Promise<UserProfile> object.
|
|
356
|
+
*/
|
|
357
|
+
public async getUserProfile(): Promise<UserProfile> {
|
|
358
|
+
return this.request<UserProfile>(ApiUrls.USER_ME_URL, {
|
|
359
|
+
method: "GET",
|
|
360
|
+
withCredentials: true,
|
|
361
|
+
});
|
|
362
|
+
}
|
|
363
|
+
|
|
364
|
+
/**
|
|
365
|
+
* Get the user profile.
|
|
366
|
+
* @return {Promise<UserProfile>} A Promise<UserProfile> object.
|
|
367
|
+
*/
|
|
368
|
+
public async updateUserProfile(params: UserProfile): Promise<UserProfile> {
|
|
369
|
+
return this.request<UserProfile>(ApiUrls.USER_ME_URL, {
|
|
370
|
+
method: "PATCH",
|
|
371
|
+
withCredentials: true,
|
|
372
|
+
body: params,
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
/**
|
|
377
|
+
* hasLoginState check if has login state
|
|
378
|
+
* @return {Promise<boolean>} A Promise<boolean> object.
|
|
379
|
+
*/
|
|
380
|
+
public async hasLoginState(): Promise<boolean> {
|
|
381
|
+
try {
|
|
382
|
+
await this.credentialsClient.getAccessToken();
|
|
383
|
+
return true;
|
|
384
|
+
} catch (err) {
|
|
385
|
+
if ((err as ResponseError).error === oauthErrorType.UNAUTHENTICATED) {
|
|
386
|
+
return false;
|
|
387
|
+
}
|
|
388
|
+
return Promise.reject(err);
|
|
389
|
+
}
|
|
390
|
+
}
|
|
391
|
+
|
|
392
|
+
/**
|
|
393
|
+
* loginScope return scope of current token
|
|
394
|
+
* @return {Promise<string>} A Promise<string> object.
|
|
395
|
+
*/
|
|
396
|
+
public async loginScope(): Promise<string> {
|
|
397
|
+
return this.credentialsClient.getScope();
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
/**
|
|
401
|
+
* Trans by provider.
|
|
402
|
+
* @param {TransByProviderRequest} params A TransByProviderRequest object.
|
|
403
|
+
* @return {Promise<Credentials>} A Promise<Credentials> object.
|
|
404
|
+
*/
|
|
405
|
+
public async transByProvider(
|
|
406
|
+
params: TransByProviderRequest
|
|
407
|
+
): Promise<Credentials> {
|
|
408
|
+
return this.request<Credentials>(ApiUrls.USER_TRANS_BY_PROVIDER_URL, {
|
|
409
|
+
method: "PATCH",
|
|
410
|
+
body: params,
|
|
411
|
+
withCredentials: true,
|
|
412
|
+
});
|
|
413
|
+
}
|
|
414
|
+
|
|
415
|
+
/**
|
|
416
|
+
* Grant token.
|
|
417
|
+
* @param {GrantTokenRequest} params A GrantTokenRequest object.
|
|
418
|
+
* @return {Promise<Credentials>} A Promise<Credentials> object.
|
|
419
|
+
*/
|
|
420
|
+
public async grantToken(params: GrantTokenRequest): Promise<Credentials> {
|
|
421
|
+
const credentials: Credentials = await this.request<Credentials>(
|
|
422
|
+
ApiUrls.AUTH_TOKEN_URL,
|
|
423
|
+
{
|
|
424
|
+
method: "POST",
|
|
425
|
+
withBasicAuth: true,
|
|
426
|
+
body: params,
|
|
427
|
+
}
|
|
428
|
+
);
|
|
429
|
+
await this.credentialsClient.setCredentials(credentials);
|
|
430
|
+
return Promise.resolve(credentials);
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
/**
|
|
434
|
+
* Get the provide list.
|
|
435
|
+
* @return {Promise<ProvidersResponse>} A Promise<UserProfileProviderList> object.
|
|
436
|
+
*/
|
|
437
|
+
public async getProviders(): Promise<ProvidersResponse> {
|
|
438
|
+
return this.request<ProvidersResponse>(ApiUrls.PROVIDER_LIST_URL, {
|
|
439
|
+
method: "GET",
|
|
440
|
+
withCredentials: true,
|
|
441
|
+
});
|
|
442
|
+
}
|
|
443
|
+
|
|
444
|
+
/**
|
|
445
|
+
* check if username is exist
|
|
446
|
+
* @param params CheckIfUserExistRequest
|
|
447
|
+
*/
|
|
448
|
+
public async checkIfUserExist(
|
|
449
|
+
params: CheckIfUserExistRequest
|
|
450
|
+
): Promise<CheckIfUserExistResponse> {
|
|
451
|
+
const url = `${ApiUrls.USER_ME_URL}?${Auth.parseParamsToSearch(params)}`;
|
|
452
|
+
return this.request<CheckIfUserExistResponse>(url, {
|
|
453
|
+
method: "GET",
|
|
454
|
+
});
|
|
455
|
+
}
|
|
456
|
+
|
|
457
|
+
/**
|
|
458
|
+
* unbind provider.
|
|
459
|
+
* @param {UnbindProviderRequest} params
|
|
460
|
+
* @return {Promise<void>}
|
|
461
|
+
*/
|
|
462
|
+
public async unbindProvider(params: UnbindProviderRequest): Promise<void> {
|
|
463
|
+
return this.request<void>(
|
|
464
|
+
`${ApiUrls.PROVIDER_UNBIND_URL}/${params.provider_id}`,
|
|
465
|
+
{
|
|
466
|
+
method: "DELETE",
|
|
467
|
+
withCredentials: true,
|
|
468
|
+
}
|
|
469
|
+
);
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
/**
|
|
473
|
+
* check Password.
|
|
474
|
+
* @param {CheckPasswordRequest} params
|
|
475
|
+
* @return {Promise<void>}
|
|
476
|
+
*/
|
|
477
|
+
public async checkPassword(params: CheckPasswordRequest): Promise<void> {
|
|
478
|
+
return this.request<void>(`${ApiUrls.SUDO_URL}`, {
|
|
479
|
+
method: "POST",
|
|
480
|
+
withCredentials: true,
|
|
481
|
+
body: params,
|
|
482
|
+
});
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
/**
|
|
486
|
+
* Edit Contact 修改 手机号 或 邮箱
|
|
487
|
+
* @param {EditContactRequest} params
|
|
488
|
+
* @return {Promise<void>}
|
|
489
|
+
*/
|
|
490
|
+
public async editContact(params: EditContactRequest): Promise<void> {
|
|
491
|
+
return this.request<void>(`${ApiUrls.EDIT_CONTACT_URL}`, {
|
|
492
|
+
method: "PATCH",
|
|
493
|
+
withCredentials: true,
|
|
494
|
+
body: params,
|
|
495
|
+
});
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
/**
|
|
499
|
+
* Set Password.
|
|
500
|
+
* @param {SetPasswordRequest} params
|
|
501
|
+
* @return {Promise<void>}
|
|
502
|
+
*/
|
|
503
|
+
public async setPassword(params: SetPasswordRequest): Promise<void> {
|
|
504
|
+
return this.request<void>(`${ApiUrls.AUTH_SET_PASSWORD_URL}`, {
|
|
505
|
+
method: "PATCH",
|
|
506
|
+
withCredentials: true,
|
|
507
|
+
body: params,
|
|
508
|
+
});
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
/**
|
|
512
|
+
* updatePasswordByOld 使用旧密码修改密码,如果已经绑定手机号,请先:sudo,再修改密码
|
|
513
|
+
* @param {UpdatePasswordRequest} params
|
|
514
|
+
* @return {Promise<void>}
|
|
515
|
+
*/
|
|
516
|
+
public async updatePasswordByOld(
|
|
517
|
+
params: UpdatePasswordRequest
|
|
518
|
+
): Promise<void> {
|
|
519
|
+
const sudoToken = await this.sudo({ password: params.old_password });
|
|
520
|
+
return this.setPassword({
|
|
521
|
+
sudo_token: sudoToken.sudo_token,
|
|
522
|
+
new_password: params.new_password,
|
|
523
|
+
});
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
/**
|
|
527
|
+
* sudo
|
|
528
|
+
* @param {sudo} params
|
|
529
|
+
* @return {Promise<SudoResponse>}
|
|
530
|
+
*/
|
|
531
|
+
public async sudo(params: SudoRequest): Promise<SudoResponse> {
|
|
532
|
+
return this.request<SudoResponse>(`${ApiUrls.SUDO_URL}`, {
|
|
533
|
+
method: "POST",
|
|
534
|
+
withCredentials: true,
|
|
535
|
+
body: params,
|
|
536
|
+
});
|
|
537
|
+
}
|
|
538
|
+
|
|
539
|
+
/**
|
|
540
|
+
* Get the current user verification.
|
|
541
|
+
* @param {SendVerificationCodeRequest} params A SendVerificationCodeToCurrentUser Object.
|
|
542
|
+
* @return {Promise<SendVerificationCodeResponse>} A Promise<SendVerificationCodeResponse> object.
|
|
543
|
+
*/
|
|
544
|
+
public async SendVerificationCodeToCurrentUser(
|
|
545
|
+
params: SendVerificationCodeRequest
|
|
546
|
+
): Promise<SendVerificationCodeResponse> {
|
|
547
|
+
params.target = "CUR_USER";
|
|
548
|
+
return this.request<SendVerificationCodeResponse>(
|
|
549
|
+
ApiUrls.VERIFICATION_URL,
|
|
550
|
+
{
|
|
551
|
+
method: "POST",
|
|
552
|
+
body: params,
|
|
553
|
+
withCredentials: true,
|
|
554
|
+
withCaptcha: true,
|
|
555
|
+
}
|
|
556
|
+
);
|
|
557
|
+
}
|
|
558
|
+
|
|
559
|
+
/**
|
|
560
|
+
* change Bound provider.
|
|
561
|
+
* @param {ChangeBoundProviderRequest} params A GetVerificationRequest Object.
|
|
562
|
+
* @return {Promise<ChangeBoundProviderResponse>} A Promise<GetVerificationResponse> object.
|
|
563
|
+
*/
|
|
564
|
+
public async changeBoundProvider(
|
|
565
|
+
params: ChangeBoundProviderRequest
|
|
566
|
+
): Promise<ChangeBoundProviderResponse> {
|
|
567
|
+
return this.request<ChangeBoundProviderResponse>(
|
|
568
|
+
`${ApiUrls.PROVIDER_LIST_URL}/${params.provider_id}/trans`,
|
|
569
|
+
{
|
|
570
|
+
method: "POST",
|
|
571
|
+
body: {
|
|
572
|
+
provider_trans_token: params.trans_token,
|
|
573
|
+
},
|
|
574
|
+
withCredentials: true,
|
|
575
|
+
}
|
|
576
|
+
);
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
/**
|
|
580
|
+
* set the user profile.
|
|
581
|
+
* @param {UserProfile} params A UserProfile Object.
|
|
582
|
+
* @return {Promise<UserProfile>} A Promise<UserProfile> object.
|
|
583
|
+
*/
|
|
584
|
+
public async setUserProfile(params: UserProfile): Promise<UserProfile> {
|
|
585
|
+
return this.request<UserProfile>(ApiUrls.USER_PROFILE_URL, {
|
|
586
|
+
method: "PATCH",
|
|
587
|
+
body: params,
|
|
588
|
+
withCredentials: true,
|
|
589
|
+
});
|
|
590
|
+
}
|
|
591
|
+
|
|
592
|
+
/**
|
|
593
|
+
* Delete me
|
|
594
|
+
* @param params
|
|
595
|
+
*/
|
|
596
|
+
public async deleteMe(params: WithSudoRequest): Promise<UserProfile> {
|
|
597
|
+
const url = `${ApiUrls.USER_ME_URL}?${Auth.parseParamsToSearch(params)}`;
|
|
598
|
+
return this.request<UserProfile>(url, {
|
|
599
|
+
method: "DELETE",
|
|
600
|
+
withCredentials: true,
|
|
601
|
+
});
|
|
602
|
+
}
|
|
603
|
+
|
|
604
|
+
/**
|
|
605
|
+
* setCustomSignFunc set the get ticket function
|
|
606
|
+
* @param getTickFn
|
|
607
|
+
*/
|
|
608
|
+
public setCustomSignFunc(getTickFn: GetCustomSignTicketFn) {
|
|
609
|
+
this._getCustomSignTicketFn = getTickFn;
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
/**
|
|
613
|
+
* SignInWithCustomTicket custom signIn
|
|
614
|
+
* @constructor
|
|
615
|
+
*/
|
|
616
|
+
public async SignInWithCustomTicket(): Promise<Credentials> {
|
|
617
|
+
const customSignTicketFn = this._getCustomSignTicketFn;
|
|
618
|
+
if (!customSignTicketFn) {
|
|
619
|
+
return Promise.reject({
|
|
620
|
+
error: "failed_precondition",
|
|
621
|
+
error_description:
|
|
622
|
+
"please use setCustomSignFunc to set custom sign function",
|
|
623
|
+
});
|
|
624
|
+
}
|
|
625
|
+
const customTicket = await customSignTicketFn();
|
|
626
|
+
return this.signInWithProvider({
|
|
627
|
+
provider_id: "custom",
|
|
628
|
+
provider_token: customTicket,
|
|
629
|
+
});
|
|
630
|
+
}
|
|
631
|
+
|
|
632
|
+
/**
|
|
633
|
+
* queryUserProfile query user profile
|
|
634
|
+
* @param params queryUserProfile query user profile
|
|
635
|
+
*/
|
|
636
|
+
public async queryUserProfile(
|
|
637
|
+
params: QueryUserProfileRequest
|
|
638
|
+
): Promise<QueryUserProfileResponse> {
|
|
639
|
+
const url = `${ApiUrls.USER_QUERY_URL}?${Auth.parseParamsToSearch(params)}`;
|
|
640
|
+
return this.request<QueryUserProfileResponse>(url, {
|
|
641
|
+
method: "GET",
|
|
642
|
+
withCredentials: true,
|
|
643
|
+
});
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
/**
|
|
647
|
+
* Authorize oauth Authorize
|
|
648
|
+
* @param params
|
|
649
|
+
* @constructor
|
|
650
|
+
*/
|
|
651
|
+
public async authorize(params: AuthorizeRequest): Promise<AuthorizeResponse> {
|
|
652
|
+
return this.request<AuthorizeResponse>(ApiUrls.AUTHORIZE_URL, {
|
|
653
|
+
method: "POST",
|
|
654
|
+
withCredentials: true,
|
|
655
|
+
body: params,
|
|
656
|
+
});
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
/**
|
|
660
|
+
* authorize device
|
|
661
|
+
* @param params
|
|
662
|
+
*/
|
|
663
|
+
public async authorizeDevice(params: AuthorizeDeviceRequest): Promise<void> {
|
|
664
|
+
return this.request<void>(ApiUrls.AUTHORIZE_DEVICE_URL, {
|
|
665
|
+
method: "POST",
|
|
666
|
+
withCredentials: true,
|
|
667
|
+
body: params,
|
|
668
|
+
});
|
|
669
|
+
}
|
|
670
|
+
|
|
671
|
+
public async deviceAuthorize(
|
|
672
|
+
params: DeviceAuthorizeRequest
|
|
673
|
+
): Promise<DeviceAuthorizeResponse> {
|
|
674
|
+
return this.request<DeviceAuthorizeResponse>(
|
|
675
|
+
ApiUrls.AUTHORIZE_DEVICE_CODE_URL,
|
|
676
|
+
{
|
|
677
|
+
method: "POST",
|
|
678
|
+
withBasicAuth: true,
|
|
679
|
+
body: params,
|
|
680
|
+
}
|
|
681
|
+
);
|
|
682
|
+
}
|
|
683
|
+
|
|
684
|
+
/**
|
|
685
|
+
* OAuth get authorize info
|
|
686
|
+
* @param params
|
|
687
|
+
* @constructor
|
|
688
|
+
*/
|
|
689
|
+
public async authorizeInfo(
|
|
690
|
+
params: AuthorizeInfoRequest
|
|
691
|
+
): Promise<AuthorizeInfoResponse> {
|
|
692
|
+
const url = `${ApiUrls.AUTHORIZE_INFO_URL}?${Auth.parseParamsToSearch(
|
|
693
|
+
params
|
|
694
|
+
)}`;
|
|
695
|
+
let withBasicAuth = true;
|
|
696
|
+
let withCredentials = false;
|
|
697
|
+
const hasLogin = await this.hasLoginState();
|
|
698
|
+
if (hasLogin) {
|
|
699
|
+
withCredentials = true;
|
|
700
|
+
withBasicAuth = false;
|
|
701
|
+
}
|
|
702
|
+
return this.request<AuthorizeInfoResponse>(url, {
|
|
703
|
+
method: "GET",
|
|
704
|
+
withBasicAuth: withBasicAuth,
|
|
705
|
+
withCredentials: withCredentials,
|
|
706
|
+
});
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
private static parseParamsToSearch(params: any): string {
|
|
710
|
+
for (let key in params) {
|
|
711
|
+
if (!params[key]) {
|
|
712
|
+
delete params[key];
|
|
713
|
+
}
|
|
714
|
+
}
|
|
715
|
+
const searchParams = new URLSearchParams(params as any);
|
|
716
|
+
return searchParams.toString();
|
|
717
|
+
}
|
|
718
|
+
}
|