2.17.3 • Published 7 months ago

@cloudbase/oauth v2.17.3

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
7 months ago

Oauth

提供 oauth2 的登录相关功能。

主要模块

OAuth2Client oauth2 基础模块

Auth 登录相关模块

使用示例

初始化对象

const authOptions = {
	apiOrigin: "服务域名",
	clientId: "客户端ID"
}
const auth = new Auth(authOptions)
import { initializeClient } from "@xbasesdk/xbase"
const config = {
	env: "xbase-4gh5dh6nf62145a9"
}
const client = initializeClient(config)
// 调用API
const loginState = await client.auth.hasLoginState()
// 获取 accessToken
const accessToken = await client.oAuth2Client.getAccessToken()

// 用 OIDC Token 用自己的API
export interface ExampleData {
	result?: string
}
const data = await client.oAuth2Client.request<ExampleData>(
	"https://example.com",
	{ withCredentials: true }
)
console.log(data.result)



import {initializeApp} from '@clodbasesdk/oauth/app';
import {getAuth} from '@clodbasesdk/oauth/auth';
export const config = {
    env: 'env-4gh5dh6nf62145a9'
};
const app = initializeApp(config)
const auth = getAuth(app)
// 调用API
const loginState = await auth.hasLoginState()

账号登录

auth.signIn({
	username: "test",
	password: "test"
})

手机验证码登录/注册

const phoneNumber = "10012341234"
// 短信验证码
const verificationCode = "******"
const verification = await auth.getVerification({
	phone_number: "+86 " + phoneNumber,
	target: "ANY"
})

let verifyResult = await auth.verify({
	verification_code: verificationCode,
	verification_id: verification ? verification.verification_id : ""
})
let isUser = verification ? verification.is_user : false

let result
if (isUser) {
	result = await auth.signIn({
		username: "+86 " + phoneNumber,
		verification_code: verificationCode,
		verification_token: verifyResult.verification_token
	})
} else {
	result = await auth.signUp({
		phone_number: "+86 " + phoneNumber,
		password: "*******",
		verification_code: verificationCode,
		verification_token: verifyResult.verification_token,
		local: "zh-cn",
		name: "100****1234"
	})
}

错误处理

try {
	await auth.verify({
		verification_code: verificationCode,
		verification_id: verification ? verification.verification_id : ""
	})
} catch (error) {
	if (error && error.error_uri === "/v1/auth/verification/verify") {
		switch (error.error) {
			case "not_found": {
				result = i18n.translate("error", "User Not Found")
				break
			}
			case "invalid_password": {
				if (error.details !== undefined && error.details.length > 0) {
					result =
						i18n.translate("error", "Certification failed, you still have") +
						error.details[0].limit_remaining +
						i18n.translate("error", "chances. You can also") +
						"" +
						i18n.translate("error", "Reset Login Password") +
						"</a>"
				} else {
					result = i18n.translate("error", "Password does not match")
				}
				break
			}
			case "user_pending": {
				result = i18n.translate("error", "The account is not activated")
				break
			}
			case "user_blocked": {
				result = i18n.translate("error", "Account has been disabled")
				break
			}
			case "invalid_status": {
				if (error.details !== undefined && error.details.length > 0) {
					let s = error.details[0].retry_delay
					s = s.substring(0, s.length - 1)
					s = parseInt(s)
					result =
						i18n.translate(
							"error",
							"The password input error has reached the upper limit and the account will be locked "
						) +
						(s < 3600
							? s / 60 + i18n.translate("error", "minute")
							: s / 3600 + i18n.translate("error", "hour"))
				} else {
					result = i18n.translate(
						"error",
						"Account has been temporarily locked"
					)
				}
				break
			}
			case "invalid_two_factor": {
				result = i18n.translate(
					"error",
					"Secondary authentication code does not match or has expired"
				)
				break
			}
			case "invalid_two_factor_recovery": {
				result = i18n.translate(
					"error",
					"Recovery code does not match or has expired"
				)
				break
			}
			default: {
				result = i18n.translate("error", "unknown")
				break
			}
		}
	}
}

更新日志

2.8.28-beta.0

12 months ago

2.11.0

9 months ago

2.8.34

12 months ago

2.8.33

12 months ago

2.8.32

12 months ago

2.8.31

12 months ago

2.8.24-beta.0

1 year ago

2.8.20-beta.0

1 year ago

2.8.35

11 months ago

2.9.2

10 months ago

2.9.1

10 months ago

2.9.3

10 months ago

2.15.0

7 months ago

2.9.6

9 months ago

2.15.1

7 months ago

2.9.8

9 months ago

2.9.7

9 months ago

2.8.27-beta.0

12 months ago

2.8.25-beta.0

1 year ago

2.8.29-beta.0

12 months ago

2.10.0

9 months ago

2.8.23-beta.0

1 year ago

2.8.21-beta.0

1 year ago

2.9.5-alpha.0

9 months ago

2.14.0

8 months ago

2.8.26-beta.0

1 year ago

2.8.22-beta.0

1 year ago

2.17.2

7 months ago

2.17.3

7 months ago

2.17.0

7 months ago

2.17.1

7 months ago

2.13.0

8 months ago

2.9.6-alpha.0

9 months ago

2.12.0

8 months ago

2.9.4-alpha.0

9 months ago

2.9.0

10 months ago

2.16.0

7 months ago

2.12.1

8 months ago

2.8.18-beta.0

1 year ago

2.8.19-beta.0

1 year ago

2.8.17-beta.0

1 year ago

2.8.16-beta.0

1 year ago

2.8.13-beta.0

1 year ago

2.8.12-beta.0

1 year ago

2.8.14-beta.0

1 year ago

2.8.15-beta.0

1 year ago

2.8.11-beta.0

1 year ago

2.8.10-beta.0

1 year ago

2.8.0-beta.0

1 year ago

2.8.8-beta.0

1 year ago

2.7.14-beta.0

1 year ago

2.7.18-beta.0

1 year ago

2.8.3-beta.0

1 year ago

2.8.4-beta.0

1 year ago

2.7.15-beta.0

1 year ago

2.8.1-beta.0

1 year ago

2.7.13-beta.0

1 year ago

2.7.16-beta.0

1 year ago

2.7.17-beta.0

1 year ago

2.8.2-beta.0

1 year ago

2.8.6-beta.0

1 year ago

2.8.5-beta.0

1 year ago

2.8.9-beta.0

1 year ago

2.8.7-beta.0

1 year ago

0.1.1-alpha.8

2 years ago

0.1.1-alpha.7

2 years ago

0.1.1-alpha.9

2 years ago

2.7.11-beta.0

1 year ago

2.7.10-beta.0

1 year ago

2.5.47-beta.0

1 year ago

2.5.46-beta.0

1 year ago

2.5.43-beta.0

2 years ago

2.7.3-beta.0

1 year ago

2.7.7-beta.0

1 year ago

2.7.5-beta.0

1 year ago

2.6.5-beta.0

1 year ago

2.6.4-beta.0

1 year ago

2.6.6-beta.0

1 year ago

0.1.1-alpha.11

2 years ago

0.1.1-alpha.10

2 years ago

2.7.4-beta.0

1 year ago

2.6.3-beta.0

1 year ago

0.1.1-alpha.15

1 year ago

0.1.1-alpha.14

1 year ago

0.1.1-alpha.13

1 year ago

0.1.1-alpha.12

1 year ago

2.5.49-beta.8

1 year ago

2.5.49-beta.7

1 year ago

2.5.49-beta.6

1 year ago

2.5.49-beta.5

1 year ago

2.5.49-beta.3

1 year ago

2.5.49-beta.2

1 year ago

2.5.49-beta.1

1 year ago

2.5.49-beta.0

1 year ago

2.7.12-beta.0

1 year ago

2.5.48-beta.0

1 year ago

2.5.45-beta.0

2 years ago

2.5.44-beta.0

2 years ago

2.5.42-beta.0

2 years ago

2.5.41-beta.0

2 years ago

0.1.1-alpha.6

2 years ago

2.5.40-beta.0

2 years ago

2.5.39-beta.0

2 years ago

2.5.38-alpha.1

2 years ago

2.5.37-beta.0

2 years ago

2.5.38-beta.0

2 years ago

2.5.36-beta.0

2 years ago

2.5.35-beta.0

2 years ago

2.5.29-beta.0

2 years ago

2.5.25-beta.0

2 years ago

2.5.28-beta.0

2 years ago

2.5.26-beta.0

2 years ago

2.5.27-beta.0

2 years ago

2.5.34-beta.0

2 years ago

2.5.33-beta.0

2 years ago

2.5.31-beta.0

2 years ago

2.5.30-beta.0

2 years ago

2.5.32-beta.0

2 years ago

1.3.12-beta

3 years ago

1.3.13-beta

3 years ago

2.5.7-beta.0

3 years ago

2.5.22-beta.0

3 years ago

2.5.20-beta.0

3 years ago

2.5.24-beta.0

3 years ago

2.5.23-beta.0

3 years ago

2.5.21-beta.0

3 years ago

1.3.11-beta

3 years ago

2.5.18-beta.0

3 years ago

2.5.3-beta.0

3 years ago

2.5.3-beta.1

3 years ago

2.5.6-beta.1

3 years ago

2.5.2-beta.0

3 years ago

2.5.0-beta.0

3 years ago

2.5.1-beta.0

3 years ago

1.3.9-beta

3 years ago

1.3.7-beta

3 years ago

1.3.10-beta

3 years ago

1.3.8-beta

3 years ago

1.3.6-beta

3 years ago

1.3.5-beta

3 years ago

1.3.2-beta

4 years ago

1.3.1-beta

4 years ago

1.3.4-beta

3 years ago

2.4.5-beta.0

3 years ago

2.4.2-beta.0

4 years ago

2.4.1-beta.0

4 years ago

2.4.4-beta.0

3 years ago

2.4.3-beta.0

3 years ago

0.1.1-alpha.4

4 years ago

0.1.1-alpha.3

4 years ago

0.1.1-alpha.5

4 years ago

1.3.3-beta

3 years ago

2.4.0-alpha.0

4 years ago

2.2.0

4 years ago

2.3.0-alpha.0

4 years ago

2.4.0-beta.0

4 years ago

1.2.1-beta

4 years ago

0.1.1-alpha.0

4 years ago

0.1.1-alpha.2

4 years ago

0.1.1-alpha.1

4 years ago

2.0.1-alpha.1

4 years ago

2.0.0-alpha.0

4 years ago

2.0.0-beta.0

4 years ago

1.2.0-beta

4 years ago

1.0.1-alpha.0

4 years ago

1.0.0-alpha.5

4 years ago

1.0.0-alpha.4

4 years ago

1.0.0-alpha.3

4 years ago

1.0.0-alpha.2

4 years ago

1.0.0-alpha.1

4 years ago

1.0.0-alpha.0

4 years ago

0.1.1-alpha

4 years ago

0.1.0-alpha

4 years ago

0.0.5-alpha.0

4 years ago

0.0.4-alpha.0

4 years ago

0.0.2-alpha.0

4 years ago

0.0.3-alpha.0

4 years ago

0.0.1-alpha.0

4 years ago