| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | 'use strict';/** * sso相关接口 * * @author CaiAoLin * @date 2017/11/15 * @version */// 加密类const crypto = require('crypto');class SSO {    /**     * 构造函数     *     * @param {Object} ctx - egg全局变量     * @return {void}     */    constructor(ctx) {        this.authUrl = 'http://sso.smartcost.com.cn/api/jzlogin';        this.ctx = ctx;        this.accountID = 0;    }    /**     * SSO登录验证     *     * @param {String} username - cld用户名     * @param {String} password - cld密码     * @return {boolean} - 验证结果     */    async loginValid(username, password) {        let result = false;        try {            if (username === '' || password === '') {                throw '用户名或密码错误';            }            // 生成加密token            const postData = {                username,                userpasswd: password,            };            const responseData = await this.ctx.helper.sendRequest(this.authUrl, postData);            if (responseData.length <= 0 || typeof responseData === 'number') {                throw '接口返回错误:' + responseData;            }            // 如果验证成功,则新增SSO数据到数据库            const customerId = await this.ctx.service.customer.addSSOUser(responseData[0]);            this.accountID = customerId;            // 更新用户登录时间            const updateData = {                last_login: new Date().getTime() / 1000,            };            result = await this.ctx.service.customer.update(updateData, { email: responseData[0].useremail });        } catch (error) {            console.log('sso:' + error);            result = false;        }        return result;    }    /**     * 获取SSO用户数据     *     * @param {Number} ssoID - sso中的id     * @return {String} - 返回json数据     */    async getSSOUserData(ssoID) {        let result = {};        try {            result = ssoID;        } catch (error) {            result = {};        }        return result;    }}module.exports = SSO;
 |