//authorize.js import api from './utilsTools.js' import requestUrl from '@/services/config.env.js' //判断是否登陆 通过检测sessionkey是否过期 1未过期 0已过期 const checkSessionKey = () => { return new Promise((resolve, reject) => { const user = uni.getStorageSync('user') // 用户缓存信息 if (user) { uni.checkSession({ success() { resolve(1) //状态未过期 }, fail() { resolve(0) //状态已过期 } }) } else { resolve(2) //未存贮 } }) } // 登录授权 const login = (params) => { return new Promise((resolve, reject) => { authDo(params).then(res => { if (res.statusCode && res.statusCode != 200) { reject('网络错误,请检查一下网络') return } if (res.data.code != 0) { reject('登录失败') return } let user = res.data.data.user uni.setStorageSync('user', user) //储存用户信息到本地 resolve(user) }) }) } // 查询用户信息 write by self const authDo = function(params) { return new Promise(function(resolve, reject) { uni.request({ url: requestUrl + '/login/doLogin', data: params, method: 'POST', header: { 'content-type': 'application/x-www-form-urlencoded' }, success: function(res) { resolve(res) }, fail: function() { reject('保存用户信息失败') } }) }) } // 获取服务商信息 uni-app是聚合开发 所以先获得是什么小程序 原生的不用这个 const getProvider = () => { return new Promise((resolve, reject) => { uni.getProvider({ service: 'oauth', //服务类型 登录授权 success: function(res) { resolve(res.provider[0]) }, fail: function() { reject('获取服务商失败') } }) }) } // 获取code const getCode = provider => { return new Promise((resolve, reject) => { if (!provider) { reject('获取缺少provider参数') } uni.login({ provider: provider, success: function(loginRes) { if (loginRes && loginRes.code) { resolve(loginRes.code) } else { reject('获取code失败') uni.navigateTo({ url: '/pages/tabBar/index/index' }) } }, fail: function() { reject('获取code失败') } }) }) } // 是否开启了获取用户名授权 当用户一开始拒绝了 需再次提醒授权 const getSetting = function() { return new Promise((resolve, reject) => { // uni.getSetting({ // success: function(res) { // let authSetting = res.authSetting // if (authSetting['scope.userInfo']) { // resolve(1) // return // } //授权成功 // if (authSetting['scope.userInfo'] === false) { // resolve(0) // return // } //拒绝授权 // resolve(2) //2未操作 // }, // fail: function() { // reject('获取用户授权失败') // } // }) }) } // 获取用户信息 const getUserInfo = (provider) => { return new Promise((resolve, reject) => { if (!provider) { reject('获取缺少provider参数') return } uni.getUserInfo({ provider: provider, success: (detail) => { if (detail.iv != '') { resolve(detail) } else { reject(0) //用户点击拒绝授权 } }, fail: (error) => { reject(0) //如果用户拒绝过授权 直接走fail } }) }) } // 获取用户登录状态 const checkLogin = () => { return new Promise((resolve, reject) => { uni.checkSession({ success() { resolve(1) console.log('登录成功') }, fail(err) { reject(0) } }) }) } export default { getProvider, getSetting, checkSessionKey, getCode, login, getUserInfo, checkLogin }