diff --git a/index.js b/index.js index 81ce08d..d2831a0 100644 --- a/index.js +++ b/index.js @@ -4,20 +4,16 @@ var Session = require('./lib/session'); var request = require('./lib/request'); var Tunnel = require('./lib/tunnel'); -var authHeader = function() { - return request.buildAuthHeader(Session.get()); -} - var exports = module.exports = { login: login.login, + loginWithCode: login.loginWithCode, setLoginUrl: login.setLoginUrl, - LoginError: login.LoginError, - requestLogin: login.requestLogin, + + Session, clearSession: Session.clear, - Session: Session, + request: request.request, RequestError: request.RequestError, - authHeader: authHeader, Tunnel: Tunnel, }; @@ -27,4 +23,4 @@ Object.keys(constants).forEach(function (key) { if (key.indexOf('ERR_') === 0) { exports[key] = constants[key]; } -}); +}); \ No newline at end of file diff --git a/lib/login.js b/lib/login.js index 8afe94e..613964a 100644 --- a/lib/login.js +++ b/lib/login.js @@ -1,233 +1,167 @@ -var utils = require('./utils'); +/** + * README!!! + * 为了兼容微信修改的登录逻辑 + * 这里对登录的 SDK 进行重构 + * 微信公告:https://developers.weixin.qq.com/blogdetail?action=get_post_info&lang=zh_CN&token=&docid=0000a26e1aca6012e896a517556c01 + */ var constants = require('./constants'); var Session = require('./session'); -/*** - * @class - * 表示登录过程中发生的异常 - */ -var LoginError = (function () { - function LoginError(type, message) { - Error.call(this, message); - this.type = type; - this.message = message; - } - - LoginError.prototype = new Error(); - LoginError.prototype.constructor = LoginError; - - return LoginError; -})(); - /** * 微信登录,获取 code 和 encryptData */ -var getWxLoginResult = function getLoginCode(callback, withCredentials, lang) { +function getWxLoginResult (cb) { wx.login({ - success: function (loginResult) { - wx.getUserInfo({ - withCredentials: withCredentials, - lang: lang, - success: function (userResult) { - callback(null, { - code: loginResult.code, - encryptedData: userResult.encryptedData, - iv: userResult.iv, - userInfo: userResult.userInfo, - }); - }, - - fail: function (userError) { - var error = new LoginError(constants.ERR_WX_GET_USER_INFO, '获取微信用户信息失败,请检查网络状态'); - error.detail = userError; - callback(error, null); - }, - }); - }, - - fail: function (loginError) { - var error = new LoginError(constants.ERR_WX_LOGIN_FAILED, '微信登录失败,请检查网络状态'); - error.detail = loginError; - callback(error, null); + success (loginResult) { + wx.getUserInfo({ + success (userResult) { + cb(null, { + code: loginResult.code, + encryptedData: userResult.encryptedData, + iv: userResult.iv, + userInfo: userResult.userInfo + }) + }, + fail (userError) { + cb(new Error('获取微信用户信息失败,请检查网络状态'), null) + } + }); }, - }); -}; + fail (loginError) { + cb(new Error('微信登录失败,请检查网络状态'), null) + } + }) +} -var noop = function noop() {}; -var defaultOptions = { +const noop = function noop() {} +const defaultOptions = { method: 'GET', success: noop, fail: noop, loginUrl: null, - withCredentials: true, - lang: 'zh_CN', -}; +} /** * @method * 进行服务器登录,以获得登录会话 + * 受限于微信的限制,本函数需要在 的回调函数中调用 + * 需要先使用