diff --git a/lib/java110/page/Page.js b/lib/java110/page/Page.js index ad4c9d1..6cb9c88 100644 --- a/lib/java110/page/Page.js +++ b/lib/java110/page/Page.js @@ -29,6 +29,11 @@ import { getLoginFlag } from '../utils/StorageUtil.js' +import { + isNotNull, + isNull +} from '../utils/StringUtil.js' + import url from '../../../constant/url.js' /** @@ -39,12 +44,17 @@ export function onLoad(options) { pageOnLoad(options); let pages = getCurrentPages() // 获取栈实例 let currentRoute = pages[pages.length - 1].route; - //白名单直接跳过检查登录 - if (!url.NEED_NOT_LOGIN_PAGE.includes(currentRoute)) { - console.log('NEED_NOT_LOGIN_PAGE') - checkSession(null,function() { - }) + let _key = options.key; + if (isNotNull(_key)) { + //根据key 去做登录 + return ; } + //白名单直接跳过检查登录 + // if (!url.NEED_NOT_LOGIN_PAGE.includes(currentRoute)) { + // console.log('NEED_NOT_LOGIN_PAGE') + // checkSession(null,function() { + // }) + // } } /** diff --git a/lib/java110/page/PageApp.js b/lib/java110/page/PageApp.js index 5236de3..35a358c 100644 --- a/lib/java110/page/PageApp.js +++ b/lib/java110/page/PageApp.js @@ -14,8 +14,8 @@ import conf from '../../../config.js' import url from '../../../constant/url.js' export function pageOnLoad(options) { - getPageWAppId() + doPageCheckSession('',function(){},'1'); } /** @@ -28,34 +28,33 @@ export function getPageWAppId() { return wAppId; } -export function pageCheckSession(_pageUrl,_call) { +export function doPageCheckSession(_pageUrl,_call,_needLogin){ let _that = this; let loginFlag = getLoginFlag(); let nowDate = new Date(); - if (loginFlag && loginFlag.expireTime > nowDate.getTime()) { _call(); return; } - //查询临时钥匙 let _key = getOwnerKey();; if (_key) { - doLoginOwnerByKey(_key, _call); + doLoginOwnerByKey(_key, _call,_needLogin); } else { - uni.navigateTo({ - url: '/pages/showlogin/showlogin?wAppId=' + getWAppId() - }); return; } } +export function pageCheckSession(_pageUrl,_call) { + doPageCheckSession(_pageUrl,_call,'0') +} + /** * app 自登陆处理 * @param {Object} _key 自登陆key * add by wuxw QQ 928255095 */ -export function doLoginOwnerByKey(_key, callback = () => {}) { +export function doLoginOwnerByKey(_key, callback = () => {},_needLogin) { requestNoAuth({ url: url.loginOwnerByKey, method: 'post', @@ -64,7 +63,7 @@ export function doLoginOwnerByKey(_key, callback = () => {}) { }, success: function(res) { let _param = res.data; - if (_param.code != 0) { + if (_param.code != 0 && _needLogin != '1') { uni.navigateTo({ url: '/pages/showlogin/showlogin?wAppId=' + getPageWAppId() }); diff --git a/lib/java110/page/PageH5.js b/lib/java110/page/PageH5.js index ef030e8..3fb1186 100644 --- a/lib/java110/page/PageH5.js +++ b/lib/java110/page/PageH5.js @@ -19,10 +19,18 @@ export function pageOnLoad(options) { let _key = options.key; if (isNotNull(_key)) { //根据key 去做登录 - doLoginOwnerByKey(_key, function(){}); + doLoginOwnerByKey(_key, function(){ + // 可能存在 页面初始化等一些问题 这里删除连接中的key 然后刷新页面 + window.location.href = window.location.href.replace('key=','_keySuccess=') + }); } - getPageWAppId(options) + getPageWAppId(options); + + if (isNull(_key)) { + doPageCheckSession(window.location.href,window.location.href,function(){}); + } + } /** @@ -81,14 +89,25 @@ export function getPageWAppId(options) { * 页面 session * @param {Object} _call 回调函数 */ -export function pageCheckSession(_pageUrl,_call) { +export function doPageCheckSession(errorUrl,_pageUrl,_call) { let loginFlag = getLoginFlag(); let nowDate = new Date(); if (loginFlag && loginFlag.expireTime > nowDate.getTime()) { _call(); return; } - wechatRefreshToken('', 0, location.origin+'/#'+_pageUrl); + if(_pageUrl){ + wechatRefreshToken(errorUrl, 0, location.origin+'/#'+_pageUrl); + }else{ + wechatRefreshToken(errorUrl, 0, ''); + } +} +/** + * 页面 session + * @param {Object} _call 回调函数 + */ +export function pageCheckSession(_pageUrl,_call) { + doPageCheckSession('',_pageUrl,_call) } export function wechatRefreshToken(errorUrl, _login, _redirectUrl) { @@ -181,3 +200,5 @@ export function getPageLoginCode(options) { resolve(code); }); } + + diff --git a/lib/java110/page/PageMini.js b/lib/java110/page/PageMini.js index 180d908..1899290 100644 --- a/lib/java110/page/PageMini.js +++ b/lib/java110/page/PageMini.js @@ -19,6 +19,7 @@ import { export function pageOnLoad(options) { getPageWAppId(); + doPageCheckSession('',function(){},'1'); } /** @@ -38,7 +39,7 @@ export function getPageWAppId() { * 页面 session * @param {Object} _call 回调函数 */ -export function pageCheckSession(_pageUrl,_call) { +export function doPageCheckSession(_pageUrl,_call,_needLogin) { let loginFlag = getLoginFlag(); let nowDate = new Date(); if (loginFlag && loginFlag.expireTime > nowDate.getTime()) { @@ -51,26 +52,34 @@ export function pageCheckSession(_pageUrl,_call) { // session_key 过期 fail: function() { // session_key过期 - doLogin(_call); + doLogin(_call,_needLogin); } }); } else { // 无登录态 - doLogin(_call); + doLogin(_call,_needLogin); } } +/** + * 页面 session + * @param {Object} _call 回调函数 + */ +export function pageCheckSession(_pageUrl,_call) { + doPageCheckSession(_pageUrl,_call,'0') +} + /** * 登录 */ -export function doLogin(callback = () => {}) { +export function doLogin(callback = () => {},_needLogin) { wx.login({ success: function(loginRes) { if (loginRes.code) { // TODO //请求服务后端登录 - requsetHcServerToLogin(loginRes, callback); + requsetHcServerToLogin(loginRes, callback,_needLogin); } else { // 获取 code 失败 console.log('调用wx.login获取code失败'); @@ -87,7 +96,7 @@ export function doLogin(callback = () => {}) { * 尝试服务器登录 * 如果登录不成功 跳转登录页面 */ -export function requsetHcServerToLogin(loginRes, callback = () => {}) { +export function requsetHcServerToLogin(loginRes, callback = () => {},_needLogin) { let defaultRawData = '{"nickName":"","gender":1,"language":"","city":"","province":"","country":"","avatarUrl":""}'; // 请求服务端的登录接口 console.log('返回信息', loginRes); @@ -110,7 +119,7 @@ export function requsetHcServerToLogin(loginRes, callback = () => {}) { }, success: function(res) { - if (res.statusCode == '401') { + if (res.statusCode == '401' && _needLogin != '1') { let data = res.data; saveOpenId(data.openId); wx.reLaunch({ @@ -124,9 +133,11 @@ export function requsetHcServerToLogin(loginRes, callback = () => {}) { saveUserLoginInfo(res.userInfo.userId, res.token) callback(); } else { - wx.reLaunch({ - url: '/pages/showlogin/showlogin?wAppId=' + _appId - }); + if( _needLogin != '1'){ + wx.reLaunch({ + url: '/pages/showlogin/showlogin?wAppId=' + _appId + }); + } return; } }, diff --git a/lib/java110/utils/UrlUtil.js b/lib/java110/utils/UrlUtil.js index 814382a..36ea0db 100644 --- a/lib/java110/utils/UrlUtil.js +++ b/lib/java110/utils/UrlUtil.js @@ -23,4 +23,22 @@ export function decodeUrl(_url){ _url = _url.replaceAll("**", "&"); //已经有?了 return _url; -} \ No newline at end of file +} + +export function getPageUrl(){ + let pages = getCurrentPages() + let len = pages.length + let curParam = pages[len - 1].options //获取当前页面参数 + let param = [] + for (let key in curParam) { //获取key=value键值对格式数组 + param.push(key + '=' + curParam[key]) + } + let _url = '' //除去第一个参数拼接后面参数 + param.forEach((item, i) => { + if (i != 0) { //拼接&符号,由于第一组前拼接的是?所有第一组需要单独处理 + _url += '&' + item + } + }) + let url = '/' + pages[len - 1].route + '?' + param[0] + _url //最终格式**/pages/index/index/?id=11&name='boyyang'&sex='man'** + return url; +} diff --git a/pages/my/my.vue b/pages/my/my.vue index 0269f54..7d83c18 100755 --- a/pages/my/my.vue +++ b/pages/my/my.vue @@ -110,7 +110,7 @@ components: {}, props: {}, onLoad: function(options) { - context.onLoad(options, () => { + this.vc.onLoad(options, () => { this.refreshPageLoginInfo(); }); },