@eim-materials/eim-pc-admin-lite
Version:
该模板适用于从 0 到 1 开始搭建项目,内置基础的页面,路由和菜单展示。
71 lines (66 loc) • 1.79 kB
JavaScript
const {
URL,
} = require('url');
const async = require('async');
const request = require('request');
const sessionConfig = require('../config').dev.session;
const md5 = require('./md5');
const loginPath = 'http://eim2.szcomtop.com:6888/';
const loginHost = new URL(loginPath).origin;
const cookieJar = request.jar();
// 认证
function step1(cb) {
const userName = sessionConfig.userName;
const password = md5(sessionConfig.password);
const options = {
clientId: 'pcbrowser',
tenantName: 'eim.com',
rememberMe: true,
username: userName,
password,
};
request.post({
url: `${loginHost}/ajax_login`,
form: options,
jar:cookieJar,
headers: {
'X-Requested-With':'XMLHttpRequest',
},
}, (err, res) => {
cb(err, res);
});
}
// 认证完成后,继续访问,向自己的服务器报告
function step2(data, cb) {
let rest = JSON.parse(data.body);
if( data.body.indexOf("success")){
console.log('\n ========= 企信登录成功 ======== \n');
}
else{
console.log(data.body);
}
request({
uri: sessionConfig.path,
followRedirect: true,
jar:cookieJar,
}, (err, res) => {
if( data.body.indexOf("<title>企信</title>\n<!-- authorize2 使用 -->") >0){
console.log('\n ========= 应用登录失败 ======== \n');
}
else{
console.log('\n ========= 应用登录成功 ======== \n');
}
process.env.eimCookie = cookieJar.getCookieString(loginPath);
console.log("企信认证cookie:" + process.env.eimCookie);
cb(err, process.env.eimCookie);
});
}
// 企信服务号授权认证
function EimLogin(cb) {
async.waterfall([ step1, step2], (err, result) => {
if (cb) {
cb(null, result);
}
});
}
module.exports = EimLogin;