@holyhigh/juth2-client.js

0.6.0 • Public • Published

Juth2-client.js

介绍

Juth2-client.js 是一个基于javascript的Juth2客户端实现。基于HTTP Header进行鉴权信息传输,实现了JWT处理、鉴权状态保持、接口封装等特性,包括

  • 使用sessionStorage进行状态保持,并支持多页签共享,但不会像cookie样出现CSRF
  • 与axios保持一致的请求接口 get/post/request
  • 内置signIn/signOut/refreshToken(deamon模式自动)等接口
  • JWT Claims完整度处理,确保残缺信息无法通过Juth2-Server

Juth2

Juth2是一整套跨域鉴权解决方案。基于JWT + OAuth2.0标准,由Java + Javascript实现(目前)。提供可配置鉴权/授权参数、透明中间层、对应(OAuth2.0)标准API,实现安装即用的前/后台套件。
更多信息可以 点此查看

安装

  1. NPM
npm i @holyhigh/juth2-client.js

使用

  1. NPM导入
import j2c from '@holyhigh/juth2-client.js';
  1. 初始化Juth2-client
j2c.init({
    clientId: cid,//服务端生成的客户Id
    scope: 'a b',//授权范围
    origin: 'http://yy.yy.yy',//自己的服务器域名
    domain: 'http://xxx.xxx.xx',//验证服务器域名
    secret: 'juth2',//密钥,用于请求签名
    credentials: false,//是否启用credentials
    daemon: false, // 守护模式,开启后会自动在token过期前请求刷新token。注意,必须拥有刷新token权限,否则服务端会报错
    log:false//是否开启日志
}).then(signedIn => {//j2c内部实现了
    console.log('signedIn=>', signedIn)
});
  1. 发起登录请求(password授权模式,使用HS256加密)
try {
    const rs = await j2c.signIn(username, password);
    //如果不使用juth2-client提供的get/post/request方法,比如外部axios
    //请务必获取rs中的headers数据的Authorization并设置到外部axios中
} catch (e) {
    console.error(e);
}
  1. 登陆后可以访问其他服务
juth2.get('/r/show/me/the/money').then(rs => {
    console.log(rs);
});

Package Sidebar

Install

npm i @holyhigh/juth2-client.js

Weekly Downloads

2

Version

0.6.0

License

MIT

Unpacked Size

14.7 kB

Total Files

5

Last publish

Collaborators

  • holyhigh