123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- import * as API_Passport from '../api/passport.js'
- import * as API_Shop from '../api/shop.js'
- const app = getApp()
- /** 自动登录 */
- export async function hasUserInfoAutoLogin() {
- console.log('autologintest',app.globalData.authorInfo)
- const authorInfo=app.globalData.authorInfo
- if(Object.keys(authorInfo).length>0){
- if(authorInfo.bool_o2o===1){
- wx.switchTab({
- url: '/pages/store/index',
- })
- }else{
- wx.redirectTo({
- url: '/pages/noshop/index',
- })
- }
- return
- }
- // 检测是否登录 如果已经登录 或者登录结果为账户未发现 则不再进行自动登录
- if (wx.getStorageSync('login_result') === 'account_not_found') {
- wx.redirectTo({
- url: '/pages/login/login',
- })
- return
- }
- let final = {}
- const code= await wxlogin()
- const uuid =wx.getStorageSync('uuid')
- const mp_type = 'miniprogramo2oseller'
- const result=await API_Passport.autoLogin({
- code,
- uuid,
- mini_program_type:mp_type
- })
- if(result.reson === 'account_not_found'){ //没有绑定账号 跳到登录页面
- wx.setStorageSync('login_result', result.reson)
- wx.redirectTo({
- url: '/pages/login/login',
- })
- }
- if (result.reson === 'unionid_not_found') { // unionid_not_found 如果已经进行过用户授权但是没有获取到unionID
- let {
- encryptedData,
- iv
- } = await wxgetUserInfo({
- withCredentials: true,
- lang: 'zh_CN'
- })
- final = await API_Passport.accessUnionID({
- code,
- uuid,
- encrypted_data: encryptedData,
- iv
- })
- }
- if(final.reson === 'account_not_found'){ //没有绑定账号 跳到登录页面
- wx.setStorageSync('login_result', result.reson)
- wx.redirectTo({
- url: '/pages/login/login',
- })
- }
- const res=result.access_token ? result : final
- const {
- access_token_timeout,
- refresh_token_timeout,
- } = res
- //
- let now = Math.round(new Date() / 1000)
- if (res.access_token && res.refresh_token && res.uid) {
- app.globalData.authorInfo={...res,'refresh_token_timeout':now+refresh_token_timeout-500,'access_token_timeout':now+access_token_timeout-500}
- //登录信息写入本地存储,删除登录结果标记
- wx.removeStorageSync('login_result')
- wx.setStorageSync('authorInfo', app.globalData.authorInfo)
- //登录成功 跳转到店铺首页
- console.log('bool_o2o',app.globalData.authorInfo.bool_o2o)
- if(app.globalData.authorInfo.bool_o2o===0){
- wx.redirectTo({
- url: '/pages/noshop/index',
- })
- }else{
- wx.switchTab({
- url: '/pages/store/index',
- })
- }
- }
- }
- export async function toAutoLogin(){
- //尝试自动登录之前判断有没有授权用户信息,没有授权用户信息直接跳回到欢迎页
- const setting=await wxgetSetting()
- if (!setting.authSetting['scope.userInfo']) {
- wx.removeStorageSync('welcome')
- wx.removeStorageSync('hasAuthorize')
- wx.redirectTo({
- url: '/pages/welcome/index',
- })
- return
- }
- await hasUserInfoAutoLogin()
- }
- // 同步获取登录code
- function wxlogin(){
- return new Promise((resolve,reject)=>{
- wx.login({
- complete: (res) => {resolve(res.code)}
- })
- })
- }
- // 同步获取用户信息
- function wxgetUserInfo(option){
- return new Promise((resolve,reject)=>{
- wx.getUserInfo({
- ...option,
- complete: (res) => {
- console.log(res)
- resolve(res)
- }
- })
- })
- }
- //同步获取用授权设置
- function wxgetSetting(){
- return new Promise((resolve,reject)=>{
- wx.getSetting({
- complete: (res) => {
- resolve(res)
- }
- })
- })
- }
- /** 获取当前店铺信息 */
- export function getCurrentShopData(){
- return new Promise((resolve, reject)=>{
- // const authorInfo=app.globalData.authorInfo
- // if(authorInfo===null||authorInfo===''){
- // wx.redirectTo({
- // url:'/pages/login/login'
- // })
- // return
- // }
- // if (authorInfo.bool_o2o===1){
- Promise.all([
- /**当前店铺信息 */
- API_Shop.getShopData(),
- /** 店铺订单统计信息 */
- API_Shop.getDashboardData()
- ])
- .then(res => {
- app.globalData.sellerShop = res[0]
- wx.setStorageSync('sellerShop', res[0])
- app.globalData.saleOrderTotal = res[1].after_sale_order_num
- app.globalData.orderNum = res[1].wait_ship_order_num
- app.globalData.todayOrderNum = res[1].today_order_num
- app.globalData.todayOrderTotal=res[1].today_order_total
- resolve(res[0])
- }).catch(err=>{
- reject(err)
- })
- // }else{
- // wx.redirectTo({
- // url:'/pages/noshop/index'
- // })
- // }
- })
- }
|