npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@findata/uamsdk

v1.0.27

Published

统一账户管理(Unified Account Manager) Javascript SDK 域名:[sso.bdfint.com](//sso.bdfint.com)

Downloads

3

Readme

bdfint-uamsdk

统一账户管理(Unified Account Manager) Javascript SDK
域名:sso.bdfint.com

sdk弹窗新版登录页地址:

  //sso.zlgx.com/#/miniLogin

sdk跳转新版登录页地址(请参考sso的接入文档http://10.82.12.180/commonservice/sso-spa-frontend):

  //sso.zlgx.com/#/login

安装和引入方式

直接引用文件(推荐)

在你的项目的 html 文件中引入

<script src="//sso.bdfint.com/sdk/uamsdk.min.js"></script>

使用 npm 安装

$ npm install bdfint-uamsdk

require('uamsdk'); // ES5
import 'uamsdk'; // ES6

使用方法

step1: 拷贝 example/callback.html 到您的 web 服务器中并确保可访问

step2: 文档加载完毕时调用init

uamsdk.init({
  client_id: 'YOUR_CLIENT_ID',  // 必填
  redirect_uri: '您的 callback.html 访问地址',  // 必填
});

step3: 根据业务场景手动调用登录函数(根据登录模式传递不同的display参数或者调用不同的函数login / createLoginIframe,参考下面四种登录模式的例子)

例子1: 弹窗登录(弹出一个固定大小的window窗口)login(不推荐,且已不再维护)

uamsdk.init({
  client_id: 'YOUR_CLIENT_ID',  // 必填
  display: uamsdk.POPUP, // 必填
  redirect_uri: '您的 callback.html 访问地址',  // 必填
});
uamsdk.login(callback, keepSession);

例子2: 弹出遮罩层登录(弹出一个带遮罩的iframe)login(推荐)

uamsdk.init({
  client_id: 'YOUR_CLIENT_ID',  // 必填
  display: uamsdk.IFRAME, // 必填
  redirect_uri: '您的 callback.html 访问地址',  // 必填
});
uamsdk.login(callback, keepSession);

例子3: 自定义嵌入登录页(用户提供容器来容纳登录部分)createLoginIframe

uamsdk.init({
  client_id: 'YOUR_CLIENT_ID',  // 必填
  redirect_uri: '您的 callback.html 访问地址',  // 必填
});
uamsdk.createLoginIframe(iframeWrapper, styleObj, callback, keepSession)

例子4: 跳转到登录页登录login

uamsdk.init({
  client_id: 'YOUR_CLIENT_ID',  // 必填
  display: uamsdk.REDIRECT, // 必填
  redirect_uri: '您的 callback.html 访问地址',  // 必填
});
uamsdk.login(callback, keepSession)

step4: 退出

uamsdk.logout(function() {
  ...
})
// 或者是
uamsdk.logout('//a.com/redirect-callback.html')

方法列表

| name | 说明 | 返回值 | | -------- | ----- | ---- | | init | 初始化配置 | | | login | 登录 | | | createLoginIframe | 嵌入登录页的iframe,并加入自定义样式 | | | getUserInfo | 获取登录用户的信息,返回promise | promise | | logout | 退出登录 | | | register | 跳转到注册页,redirect_uri参数是注册成功后要跳转的地址,不传则默认跳转到init方法传递的登录页地址(loginUrl) | | | loggedIn | 判断用户是否已登录 | boolean | | loggingIn | 判断用户是否正在登录 | boolean | | getToken | 获取登录的token | string | | closeLoginDialog | 关闭登录弹层,option参数解释: 不传option默认值是{action: 'destroy'}, action为'destroy'时删除弹层元素,否则隐藏弹层元素,如果弹层是window窗口,则无视option参数 | | | tipInIframe | 在使用createLoginIframe方式登录时,默认登录成功不提示,可以使用该方法调用iframe内部的提示; type: success/error/warning | | | handleStatusChange | 处理登录状态反生改变的函数,调用此函数后sdk会定时获取用户的登录状态并调用回调函数. response: {status: 'kicked/not_login/already_login', msg: 'message from server'} | | | cancelHandleStatusChange | 取消监听用户登录状态,调用此方法会停止向后端请求获取用户登录状态 | | | ajax | 调用接口 | | | get | get方式调用接口 | | | post | post方式调用接口 | | | onClosedPopup | 给popup弹窗关闭事件添加回调 | |

init

// @param option {object} 初始化配置参数
uamsdk.init = function(option){ ... }
// opition详细配置:
option = {
  display: '登录模式(uamsdk.POPUP/uamsdk.IFRAME/uamsdk.REDIRECT)',
  client_id: '你的客户端ID',
  redirect_uri: '你的callback.html访问地址',
  loginUrl: '你要使用的登录地址,没有则不填由sdk提供默认',
  logoutUrl: '你要使用的登出地址,没有则不填由sdk提供默认',
  userStatusBaseUrl: '获取用户登录状态的接口基础段或者完整接口路径,不传此参数则默认使用https://sso.bdfint.com/api/v1/uam/user/login/status',  // exp: 基础段:https://demo.bdfint.com/api/v1/  或者  完整路径:https://demo.bdfint.com/api/v1/uam/user/login/status
  iframeWrapperStyle: '弹窗的样式,可以通过此项自定义弹窗的宽高等样式。如: {width: "100px", height: "500px"}'
  ssoTemplate: sso服务域名前缀,默认为sso
}

init方法参数对象说明

| key | 说明 | 类型 | 默认值 | | -------- | ----- | ---- | ---- | | display | 以哪种方式进行登录 | string: uamsdk.POPUP ,uamsdk.IFRAME, uamsdk.REDIRECT | | | client_id | 调用uamsdk的业务平台ID | string | | | redirect_uri | 你的callback.html访问地址 | string | | | loginUrl | 自定义登录页地址 | string | https://sso.bdfint.com/login/mlogin.html | | logoutUrl | 自定义退出页地址 | string | https://sso.bdfint.com/login/logout.html | | userStatusBaseUrl | 自定义获取用户登录状态基础api地址 | string | | | userInfoUrl | 自定义获取用户信息的url | string | |

init方法中部分参数不同环境下对应的值

| key | dev | test | stable-dev | stable-test | production | | -------- | --------- | -------- | ------------ | ---------- | ----------------- | | loginUrl | 前台项目: (旧)http://sso.dev.bdfint.cn/login/mlogin.html 后台项目: http://uam-sso.dev.bdfint.cn/#/login | 前台项目: http://sso.test.bdfint.cn/login/mlogin.html 后台项目: http://uam-sso.test.bdfint.cn/#/login | 前台项目: http://sso-stable.dev.bdfint.cn/login/mlogin.html 后台项目: http://uam-sso-stable.dev.bdfint.cn/#/login | 前台项目: http://sso-stable.test.bdfint.cn/login/mlogin.html 后台项目: http://uam-sso-stable.test.bdfint.cn/#/login | 前台项目: https://sso.zlgx.com/login/mlogin.html 后台项目: https://uam-sso.zlgx.com/#/login | | logoutUrl | 前台项目: http://sso.dev.bdfint.cn/login/logout.html 后台项目: http://uam-sso.dev.bdfint.cn/#/logout | 前台项目: http://sso.test.bdfint.cn/login/logout.html 后台项目: http://uam-sso.test.bdfint.cn/#/logout | 前台项目: http://sso-stable.dev.bdfint.cn/login/logout.html 后台项目: http://uam-sso-stable.dev.bdfint.cn/#/logout | 前台项目: http://sso-stable.test.bdfint.cn/login/logout.html 后台项目: http://uam-sso-stable.test.bdfint.cn/#/logout | 前台项目: https://sso.zlgx.com/login/logout.html 后台项目: https://uam-sso.zlgx.com/#/logout | | userStatusBaseUrl | | | | | | | userInfoUrl | 前台项目: /api/v1/login/getUserByToken 后台项目: /api/v1/uamUser/getUamUserByToken | 根路径不变,域名和登录、退出的域名一致 | 根路径不变,域名和登录、退出的域名一致 | 根路径不变,域名和登录、退出的域名一致 | 根路径不变,域名和登录、退出的域名一致 |

login

// @param callbackOrRedirectUrl 登录成功后回调函数或者是重定向地址
// @param keepSession {boolean} 是否保持会话(重新打开浏览器是否保持登录状态),不传则默认为true,即重新打开浏览器依然保持登录
uamsdk.login = function(callback, keepSession){ ... }

createLoginIframe

// 创建登录的iframe
// @param wrapperId {string} iframe容器的ID
// @param styleObj {object} 用户自定义iframe样式
// @param callback {function} 登录成功后回调函数
// @param keepSession {boolean} 是否保持会话(重新打开浏览器是否保持登录状态),不传则默认为true,即重新打开浏览器依然保持登录
uamsdk.createLoginIframe = function(iframeWrapperId, iframeStyleObj, callback, keepSession){ ... }

handleStatusChange

用户状态可选值见文档底部

// 监听用户登录状态
// @param response {object}
exp:
uamsdk.handleStatusChange(function (response) {
  // 判断用户登录状态(response.status)
  if (response.status === 'xxx') {
    // ...your business
  }
})

logout

// @param callbackOrRedirectUrl 可以是回调函数或者是合法的跳转链接
uamsdk.logout = function(callbackOrRedirectUrl){ ... }

register

// 跳转到注册页
uamsdk.register = function(){ ... }

onClosedPopup

// 给popup弹窗关闭事件添加回调
uamsdk.onClosedPopup = function(cb){ ... }

// eg:
uamsdk.onClosedPopup(function(){
  //your stuff...
})

display参数可取值说明:

  1. 'popup': 弹窗模式,弹出新的window窗口
  2. 'redirect': 跳转模式,当前窗口跳转到登录页
  3. 'iframe': 弹出类似于模态框的iframe,不打开新的window窗口,默认居中显示
  4. 'customIframe': 自定义嵌入的iframe, 可调整sdk嵌入的iframe样式,需要提供容器给iframe,使用uamsdk.createLoginIframe方法

userStatus

  1. 'not_login': 未登录
  2. 'already_login': 已登录
  3. 'kicked': 被踢下线
  4. 'frozen': 已冻结