UNPKG

@eim-materials/eim-pc-admin-lite

Version:

该模板适用于从 0 到 1 开始搭建项目,内置基础的页面,路由和菜单展示。

71 lines (66 loc) 1.79 kB
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;