1.0.27 • Published 3 years ago

bdfint-uamsdk v1.0.27

Weekly downloads
1
License
ISC
Repository
-
Last release
3 years ago

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获取登录用户的信息,返回promisepromise
logout退出登录
register跳转到注册页,redirect_uri参数是注册成功后要跳转的地址,不传则默认跳转到init方法传递的登录页地址(loginUrl)
loggedIn判断用户是否已登录boolean
loggingIn判断用户是否正在登录boolean
getToken获取登录的tokenstring
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调用接口
getget方式调用接口
postpost方式调用接口
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的业务平台IDstring
redirect_uri你的callback.html访问地址string
loginUrl自定义登录页地址stringhttps://sso.bdfint.com/login/mlogin.html
logoutUrl自定义退出页地址stringhttps://sso.bdfint.com/login/logout.html
userStatusBaseUrl自定义获取用户登录状态基础api地址string
userInfoUrl自定义获取用户信息的urlstring

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

keydevteststable-devstable-testproduction
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': 已冻结
1.0.27

3 years ago

1.0.26

3 years ago

1.0.25

4 years ago

1.0.24

4 years ago

1.0.23

4 years ago

1.0.22

4 years ago

1.0.21

4 years ago

1.0.20

4 years ago

1.0.20-beta.0

4 years ago

1.0.19

4 years ago

1.0.18

4 years ago

1.0.17

4 years ago

1.0.16

5 years ago

1.0.15

5 years ago

1.0.14

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.11

5 years ago

1.0.10

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

5 years ago

1.0.5

5 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.0

6 years ago