@seayoo-account/login-sdk
v2.1.2
Published
seayoo account login sdk
Readme
Seayoo Account Login SDK
Web页面使用
import { AccountLogin } from "@seayoo-account/login-sdk";
// 环境标记支持 dev / prod
const loginSDK = new AccountLogin("dev");
// 返回 Error 表示意外错误,返回 false 表示用户关闭,返回非空字符串表示 idToken
const idToken = await loginSDK.login();
// 应优先检查 Error 给予提示或调整后续业务逻辑
if (idToken instanceof Error) {
message.error(idToken.message);
} else if (idToken) {
// 获得 idToken
}自定义配置
const loginSDK = new AccountLogin("dev", {
/** 是否隐藏密码登录模式 */
hidePasswordLogin: false,
/** 弹窗的位置,默认 "auto"(PC 居中、移动端居底),可选 "center" / "bottom" */
dialogPosition: "auto",
/** 用户协议链接,需为完整 URL */
userAgreementUrl: "https://www.seayoo.com/....",
/** 隐私政策链接,需为完整 URL */
privacyPolicyUrl: "https://jxfs.seayoo.com/....",
});
// 修改配置
loginSDK.config({ ... });
// 预加载 iframe 资源(尚未登录的场景可提前调用以加速首次弹窗)
loginSDK.preload();登录页面加载超时固定为 6 秒,不可配置。
错误上报
import { captureException } from "@sentry/vue";
const loginSDK = new AccountLogin("prod");
loginSDK.onError((error) => captureException(error));小程序使用
import { NetRequest } from "@seayoo-web/request/wx";
import { AccountLoginWeixin } from "@seayoo-account/login-sdk";
// 环境标记支持 dev / prod
const loginSDK = new AccountLoginWeixin("dev", APP_ID, NetRequest);
// 如果有本地缓存,则直接调用 login 进行静默登录
if (loginSDK.hasLoginToken) {
const idToken = await loginSDK.login();
if (idToken instanceof Error) {
message.error(idToken.message);
} else if (idToken === "needCode") {
// 登录 token 失效,需要用户重新授权手机号
} else {
// 获得 idToken
}
}
// 如果没有本地缓存,则需要先获取用户授权手机号
// https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html
// 获得 code 之后调用登录
const idToken = await loginSDK.login(weixinCode);
if (idToken instanceof Error) {
message.error(idToken.message);
} else {
// 获得 idToken
}