UNPKG

w-web-perm

Version:
97 lines (76 loc) 2.47 kB
import axios from 'axios' import get from 'lodash-es/get.js' import isestr from 'wsemi/src/isestr.mjs' import iseobj from 'wsemi/src/iseobj.mjs' import isfun from 'wsemi/src/isfun.mjs' import ispm from 'wsemi/src/ispm.mjs' async function getPerm(url, tokenTar, opt = {}) { //url: http://localhost:11006/api/getPerm?token={token} let errTemp = null //check if (!isestr(url)) { return Promise.reject('invalid url') } if (!isestr(tokenTar)) { return Promise.reject('invalid tokenTar') } //funConvertPerm let funConvertPerm = get(opt, 'funConvertPerm') //url if (url.indexOf('token={token}') < 0) { return Promise.reject(`no 'token={token}' in url`) } url = url.replaceAll('{token}', tokenTar) // console.log('getPerm: url', url) //get let res = await axios.get(url) .catch((err) => { errTemp = err.toString() }) //check if (errTemp !== null) { console.log('res', res) console.log('errTemp', errTemp) console.log(`can not get user by url[${url}]`) return Promise.reject(`can not get user by url[${url}]`) //由SSO取得使用者資訊錯誤 } //data let data = get(res, 'data') //state let state = get(data, 'state', '') //msg let msg = get(data, 'msg') //check if (state !== 'success') { console.log('res', res) console.log('data', data) console.log('state', state) console.log('errTemp', msg) console.log(`can not get user data by url[${url}]`) return Promise.reject(`can not get user data by url[${url}]`) //取得使用者資訊失敗 } //ur let ur = msg // console.log('getPerm ur(msg)', ur) //check if (!iseobj(ur)) { console.log(`no user data by url[${url}]`) return Promise.reject(`no user data by url[${url}]`) } //check if (isfun(funConvertPerm)) { //funConvertPerm ur = funConvertPerm(ur) if (ispm(ur)) { ur = await ur } // console.log('getPerm ur(funConvertPerm)', ur) //check if (!iseobj(ur)) { console.log(`no user data after funConvertPerm`) return Promise.reject(`no user data after funConvertPerm`) } } return ur } export default getPerm