JavaScript SDK 支持 Angular.js, React.js, Vue.js 以及 Node.js.我们提供了完全一致的接口。
Github:https://github.com/Authing/authing.js。
NPM
当构建大规模应用时,我们推荐使用 npm 进行安装, 它可以与一些模块打包工具很好地配合使用,如 Webpack, Browserify。
# latest stable
$ npm install authing-js-sdk --save
先从 Authing 控制台 中 获取 Client ID。
为保证 secret 安全,在服务端的初始化和客户端的初始化有所不同。
服务端可直接传入 clientId 和 secret。
const auth = new Authing({
clientId: 'your_client_id',
secret: 'your_client_secret'
});
auth.then((authing) => {
// authing.login
// authing.register
// ...
});
客户端需传入三个参数
timestamp
当前时间戳 Math.round(new Date() / 1000)
示例
noSecurityChecking
关闭网络安全预检,默认为 false。开启此参数后,构造函数不返回 Promise,捕获构造函数的错误必须使用 try...catch...;关闭此参数后,构造函数返回 Promise,开发者可在 Promise 的 catch 或 try...catch... 中捕获错误。
preflight
是否开启网络状况预检,默认为 false。此参数适用于检查用户的网络是否屏蔽了 authing.cn 这个域名(某些企业的内网会屏蔽这个域名),检查成功不进行任何通知,检查失败后会抛出错误,开发者可在 Promise 的 catch或 try...catch... 中捕获错误。执行预检之后会导致 SDK 初始化速度变慢,请谨慎使用。
cdnPreflight
是否开启 CDN 网络状况预检,默认为 false。此参数适用于检查用户的网络是否可以访问七牛云 CDN(某些开了代理的场景下无法访问),检查成功不进行任何通知,检查失败后会抛出错误,开发者可在 Promise 的 catch或 try...catch... 中捕获错误。执行 CDN 预检之后会导致 SDK 初始化速度变慢,请谨慎使用。
Authing SDK 的所有 API 都支持 Promise。
如果你使用 ES6+ 推荐用 await 处理异步,示例如下:
Authing.register(options)
参数:
{Object} options
unionid,若不使用 email 和 password 则 unionid 必选
oauth 可选,oauth 信息的字符串,或者其他自定义的用户字段都可以以 JSON 字符串的形式存在这里
Authing.login(options)
参数:
{Object} options
unionid,若不使用 email 和 password 则 unioinid 必选
verifyCode,可选,频繁注册时会要求输入验证码,返回数据会包含
MFACode,可选,如果用户开启了 MFA 会要求输入 6 位动态口令,返回数据会出现 1635 错误代码
lastIP,可选,若连续出现验证码验证失败情况,请将客户端 IP 填入
此接口可结合使用手机验证码登录使用。
Authing.getVerificationCode(phone)
短信模版
【Authing】{S8} 是你的验证码,有效时间为 {S2} 分钟。如非本人操作请忽略。
验证码接口可结合使用手机验证码登录使用。
Authing.loginByPhoneCode(options)
LDAP 服务的配置流程请参考配置 LDAP 服务。
Authing.loginByLDAP(options)
参数:
{Object} options
username,在 LDAP 服务中的登录名,可以是邮箱或用户名
Authing.checkLoginStatus(options)
若 Token 合法,则返回数据为:
当 status 为 false 时,有三种情况,分别返回:
Authing.refreshToken(options)
Authing.logout(uid)
如果你使用了 OAuth、OIDC 或 SAML 实现了单点登录,那么使用户退出登录需要跳转到一个 URL:
https://<你的域名>.authing.cn/login/profile/logout?app_id=<OAuth 应用 ID>&redirect_uri=<退出之后的回调地址>
其中 app_id 和 redirect_uri 都是必填选项,redirect_uri 是退出后你想要返回的地址。
配置用户权限读取/修改用户权限Authing.user(options)
Authing.userPatch(options)
参数:
{Object} options
ids
要获取的用户 id 列表,使用逗号分割,不要出现多余的空格;如果使用非法 id 查询时系统会自动忽略。
Authing.list(page, count)
Authing.remove(uid)
Authing.selectAvatarFile(cb)
结果:
此 API 会打开文件选择窗口供用户选择文件,用户选取文件后,系统会自动上传,上传成功后会调用 cb,并把头像 URL 作为参数传入 cb 函数,开发者可将回调函数中的 avatarURL 作为 photo 参数传入 update 方法中修改用户头像。
若使用 JavaScript 调用,需要使用 then().catch() 捕获结果和错误。
Authing.update(options)
此接口可以用来修改密码、昵称、头像等各种用户信息
参数:
{Object} options
emailVerified: {Boolean},选填,邮箱是否经过验证
oauth: {String},选填,oauth 信息
photo: {String || file object},选填,用户头像
browser: {String},选填,用户注册时所用的浏览器
password: {String},选填,用户密码
oldPassword: {String}(当有 password 时,旧密码参数必需填写)
tokenExpiredAt: {String},选填,token 过期时间
loginsCount: {Number},选填,登录次数
lastLogin: {String},选填,最后登录时间
lastIP: {String},选填,最后登录 IP
signedUp: {String},选填,注册时间
blocked: {Boolean},选填,是否被锁定
isDeleted: {Boolean},选填,是否被删除
1. 发送验证码 Authing.sendResetPasswordEmail(options)
2. 验证验证码 Authing.verifyResetPasswordVerifyCode(options)
3. 发送新密码 Authing.changePassword(options)
发送验证邮件 Authing.sendVerifyEmail(options)
发送之后,用户将会收到一个包含验证链接的邮件,当用户打开此链接,我们将进行验证。
若使用 JavaScript 调用,需要使用 then().catch() 捕获结果和错误。
Authing.unbindEmail(options)
参数:
{Object} options
user {String} 用户 ID,可选,默认为当前登录用户的 ID
client {String} 应用 ID,可选,默认为当前登录应用的 ID
注意事项
若未绑定其他登录方式, 则不可解绑邮箱
查询用户授权的 SSO 应用列表
该接口返回用户在一个用户池下授权过的 OAuth 和 OIDC 应用列表。
Authing.getAuthedAppList(options)
撤回用户对 SSO 应用的授权
Authing.revokeAuthedApp(options)
小程序扫码登录指使用 Authing 小程序 身份管家 执行微信登录。 示例:小程序扫码登录

接入小程序扫码登录Authing 构造函数包含一个名为 host 对象,可接收自定义的请求链接(适合私有部署 Authing 的用户使用),使用方法如下:
host 对象中 user 和 oauth 的默认值是 Authing 官方的请求链接: