iep-ui
Version:
An enterprise-class UI design language and Vue-based implementation
71 lines (62 loc) • 2.12 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.checkBrowser = exports.getToken = undefined;
var _axios = require('axios');
var _axios2 = _interopRequireDefault(_axios);
var _jssha = require('jssha');
var _jssha2 = _interopRequireDefault(_jssha);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
/**
* interface Options {
* uid: string // 用户账号
* channelName: string // 频道名称
* appkey: string // 你的 appkey
* appSecret: string // 你的 appsecret
* }
*/
var getToken = exports.getToken = function getToken(_ref) {
var uid = _ref.uid,
channelName = _ref.channelName,
appkey = _ref.appkey,
appSecret = _ref.appSecret;
var getTokenUrl = 'https://api.netease.im/nimserver/user/getToken.action';
var Nonce = Math.ceil(Math.random() * 1e9);
var CurTime = Math.ceil(Date.now() / 1000);
var aaa = '' + appSecret + Nonce + CurTime;
var sha1 = new _jssha2['default']('SHA-1', 'TEXT', { encoding: 'UTF8' });
sha1.update(aaa);
var CheckSum = sha1.getHash('HEX');
return new Promise(function (resolve, reject) {
_axios2['default'].post(getTokenUrl, 'uid=' + uid + '&channelName=' + channelName, {
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
AppKey: appkey,
Nonce: Nonce,
CurTime: CurTime,
CheckSum: CheckSum
}
}).then(function (data) {
var d = data.data;
if (d.code !== 200) {
reject(new Error('getChecksum code: ' + d.code));
return;
}
resolve(d.token);
})['catch'](function (error) {
reject(new Error('getChecksum error: ', error));
});
});
};
var checkBrowser = exports.checkBrowser = function checkBrowser(type) {
var ua = navigator.userAgent.toLowerCase();
var info = {
ie: /msie/.test(ua) && !/opera/.test(ua),
opera: /opera/.test(ua),
safari: /version.*safari/.test(ua),
chrome: /chrome/.test(ua),
firefox: /gecko/.test(ua) && !/webkit/.test(ua)
};
return info[type] || false;
};
;