function request(path, options) { var app = getApp(); var token = app.globalData.token || xhs.getStorageSync('pk_token'); options = options || {}; return new Promise(function (resolve, reject) { xhs.request({ url: app.globalData.apiBase + path, method: options.method || 'GET', data: options.data, header: token ? { 'content-type': 'application/json', Authorization: 'Bearer ' + token } : { 'content-type': 'application/json' }, success: function (res) { if (res.statusCode >= 200 && res.statusCode < 300) return resolve(res.data); reject(new Error((res.data && res.data.detail) || '请求失败(' + res.statusCode + ')')); }, fail: reject }); }); } function ensureLogin() { var app = getApp(); if (app.globalData.token || xhs.getStorageSync('pk_token')) return Promise.resolve(); return new Promise(function (resolve, reject) { xhs.login({ success: function (loginResult) { request('/api/v1/auth/xhs', { method: 'POST', data: { app_key: app.globalData.appKey, code: loginResult.code } }).then(function (data) { app.globalData.token = data.token; xhs.setStorageSync('pk_token', data.token); resolve(data); }).catch(reject); }, fail: reject }); }); } module.exports = { request: request, ensureLogin: ensureLogin };