0.1.0 • Published 5 years ago

authing-guard v0.1.0

Weekly downloads
3
License
-
Repository
-
Last release
5 years ago

Guard

Authing 是一个企业级身份认证提供商,其集成了 OAuth、LDAP、OIDC 等多种身份认证和授权解决方案。

Guard 套件是 Authing 提供的浏览器端单点登录解决方案,开发者可基于此框架在浏览器端实现单点登录的页面及逻辑,其依托 Authing 的另一开源项目 Login Form 作为 UI 展示层。

安装

通过 CDN 安装

<!-- 施工中-->
<script src="https://cdn.authing.cn/sdk/javascript/authing-guard.js"></script>

通过 NPM 安装

$ npm install authing-guard --save

接着你可以使用以下方式引入 AuthingGuard

import AuthingGuard from 'authing-guard';

API

new AuthingGuard(clientID, domain, options)

初始化一个新的 AuthingGuard 实例,需要传入你在 Authing 对应应用中的 clientID 和域名信息。

  • clientId {String}: Authing 应用的 clientId
  • domain {String}: Authing 中配置的 域名. 通常是 sso.authing.cn/login?client_id=YOUR_CLIENT_ID
  • options {Object}: 允许你自定义 Login Form 的行为。

示例

var clientId = "YOUR_AUTHing_APP_CLIENTID";
var domain = "sso.authing.cn/login?client_id=YOUR_CLIENT_ID_";
var guard = new AuthingGuard(clientId, domain);

guard.on("authenticated", function(authResult) {
  guard.getUserInfo(authResult.accessToken, function(error, profile) {
    if (error) {
      // Handle error
      return;
    }

    localStorage.setItem("accessToken", authResult.accessToken);
    localStorage.setItem("profile", JSON.stringify(profile));

    // Update DOM
  });
});

getUserInfo(accessToken, callback)

一旦用户登录,并且你已经获取 accessToken 后你就可以通过 getUserInfo 获取用户资料。

  • accessToken {String}: accessToken.
  • callback {Function}: 获取用户资料后会处罚此函数.

Example

guard.getUserInfo(accessToken, function(error, profile) {
  if (!error) {
    alert("hello " + profile.username);
  }
});

on(event, callback)

Guard 会在以下生命周期中触发相应事件:

事件名称事件说明事件参数事件参数说明
authingLoadAuthing Client ID 和 Secret验证通过,加载完成authingauthing 对象,可直接操作 login,register等方法
authingUnloadAuthing Client ID 和 Secret验证失败error错误信息
oauthLoadOAuth列表加载完成oauthList完整的 OAuth 列表,若用户未在后台配置过则为空
oauthUnloadOAuth列表加载失败error错误信息
login用户登录成功user用户数据
loginError用户登录失败error错误信息,包含字段缺失/非法或服务器错误等信息
register用户注册成功user用户数据
registerError用户注册失败error错误信息,包含字段缺失/非法或服务器错误等信息
emailSent忘记密码邮件发送成功data发送的结果
emailSentError忘记密码邮件发送失败error错误信息
resetPassword重置密码成功data重置密码结果
resetPasswordError重置密码失败error错误信息
scanning扫码登录成功user用户数据
scanningError扫码登录失败error错误信息
scanningIntervalStarting开始监听扫码事件interval用户可使用 clearInterval 停止监听
formClosedLogin Form 关闭事件null用户按下 ESC 或点击右上方的关闭按钮后会触发此事件

浏览器兼容性

兼容 Chrome、Safari、Firefox 和 Edge。

问题报告

如果你遇到问题,请打开 Issue 提出问题。

开发者信息

Authing

License

This project is licensed under the MIT license. See the LICENSE file for more info.

0.1.0

5 years ago