UNPKG

@holyhigh/juth2-client.js

Version:

A Juth2 client for javascript

56 lines (51 loc) 2.13 kB
# Juth2-client.js ## 介绍 Juth2-client.js 是一个基于javascript的Juth2客户端实现。基于HTTP Header进行鉴权信息传输,实现了JWT处理、鉴权状态保持、接口封装等特性,包括 - 使用sessionStorage进行状态保持,并支持多页签共享,但不会像cookie样出现[CSRF](https://www.jianshu.com/p/2bd833de3adb) - 与axios保持一致的请求接口 get/post/request - 内置signIn/signOut/refreshToken(deamon模式自动)等接口 - JWT Claims完整度处理,确保残缺信息无法通过Juth2-Server ## Juth2 Juth2是一整套跨域鉴权解决方案。基于JWT + OAuth2.0标准,由Java + Javascript实现(目前)。提供可配置鉴权/授权参数、透明中间层、对应(OAuth2.0)标准API,实现安装即用的前/后台套件。 更多信息可以 [点此查看](https://www.jianshu.com/p/385e88e32a59) ## 安装 1. NPM ``` npm i @holyhigh/juth2-client.js ``` ## 使用 1. NPM导入 ``` import j2c from '@holyhigh/juth2-client.js'; ``` 2. 初始化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) }); ``` 3. 发起登录请求(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); } ``` 4. 登陆后可以访问其他服务 ``` juth2.get('/r/show/me/the/money').then(rs => { console.log(rs); }); ```