1.6.1 • Published 6 months ago
@xbasesdk/xbase v1.6.1
xbase-sdk
提供 oauth2 的登录相关功能。
主要模块
OAuth2Client oauth2 基础模块
Auth 登录相关模块
使用示例
初始化对象
import {initializeClient} from '@xbasesdk/xbase';
iexport const config = {
apiOrigin: "https://xbase-4gh5dh6nf62145a9.ap-shanghai.tcb-api.tencentcloudapi.com",
clientId: "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)
账号登录
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;
}
}
}
}
更新日志
1.6.1
6 months ago
1.6.0
2 years ago
1.0.1
4 years ago
1.4.6
4 years ago
1.4.5
4 years ago
1.4.1
4 years ago
1.0.5
4 years ago
1.4.0
4 years ago
1.0.4
4 years ago
1.0.3
4 years ago
1.4.60
4 years ago
1.4.62
4 years ago
1.4.61
4 years ago
1.4.20
4 years ago
1.4.66
4 years ago
1.4.65
4 years ago
1.4.21
4 years ago
1.4.68
4 years ago
1.4.67
4 years ago
1.4.23
4 years ago
1.4.26
4 years ago
1.4.69
4 years ago
1.4.25
4 years ago
1.4.27
4 years ago
1.0.2-src
4 years ago
1.4.71
4 years ago
1.4.70
4 years ago
1.4.75
4 years ago
1.4.31
4 years ago
1.4.30
4 years ago
1.4.33
4 years ago
1.4.32
4 years ago
1.4.79
4 years ago
1.4.35
4 years ago
1.4.78
4 years ago
1.4.34
4 years ago
1.4.37
4 years ago
1.4.36
4 years ago
1.5.2
3 years ago
1.5.1
3 years ago
1.4.80
4 years ago
1.3.0
4 years ago
1.4.81
4 years ago
1.4.86
4 years ago
1.4.85
3 years ago
1.4.46
4 years ago
1.4.45
4 years ago
1.4.49
4 years ago
1.4.51
4 years ago
1.4.96
3 years ago
1.4.9
4 years ago
1.4.55
4 years ago
1.4.11
4 years ago
1.4.8
4 years ago
1.4.98
3 years ago
1.4.13
4 years ago
1.4.12
4 years ago
1.4.15
4 years ago
1.4.58
4 years ago
1.4.14
4 years ago
1.4.16
4 years ago
1.0.0-alpha
4 years ago
1.0.1-alpha
4 years ago