• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

小程序判断是否授权源码auth.js

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
一、auth.js
  • const configGlobal = require('../config/config_global.js');
  • var util = require('function.js');
  • var http = require('http.js');
  • var app = getApp();
  • var authHandler ={
  •     success:function(res){},
  •     fail:function(res){},
  •     complete:function(res){},
  • };
  • /*
  • * 得到保存的SESSION
  • */
  • function getSession(){
  •     var session =null;
  •     try{
  •         session = wx.getStorageSync('session');
  •         if(session){
  •             wx.checkSession({
  •                 success:function(res){
  •                     setAppGlobalData(session);
  •                 },
  •                 fail:function(res){
  •                     session =null;
  •                     setAppGlobalData(session);
  •                 }
  •             });
  •         }else{
  •             session =null;
  •             setAppGlobalData(session);
  •         }
  •     }catch(e){}
  •     return session;
  • };
  • /**
  • * [putLoginLog description]--记录登录日志
  • * @return {[type]} [description]
  • */
  • function putLoginLog(){
  •     http.POST({
  •         url:'/_WxaappApiServer/putLoginLog',
  •         data:{
  •             openId: app.globalData.openId,
  •         },
  •         success:function(res){
  •             if(res.data.code =='0'){}else{}
  •         },
  •         fail:function(res){ console.log('request失败,res:', res);},
  •         complete:function(res){}
  •     });
  • };
  • function setAppGlobalData(session){
  •     app.globalData.openId = session.openId;
  •     app.globalData.unionid = session.unionid;
  •     app.globalData._3rd_session = session._3rd_session;
  •     app.globalData.userInfo = session.userInfo;
  • };
  • function getUserInfo(authHandler){
  •     // 调用登录接口
  •     wx.login({
  •         success:function(res){
  •             var code = res.code;
  •             wx.getUserInfo({
  •                 lang:'zh_CN',
  •                 success:function(res){
  •                     http.POST({
  •                         url:'/_WxaappApiServer/getUserInfo',
  •                         data:{
  •                             code: code,
  •                             iv: res.iv,
  •                             encryptedData: res.encryptedData,
  •                         },
  •                         success:function(res){
  •                             //对userInfo重新赋值
  •                             if(res.data.code =="0"){
  •                                 var session = res.data.data;
  •                                 try{
  •                                     wx.setStorageSync('session', session);
  •                                     setAppGlobalData(session);
  •                                     authHandler.success();
  •                                 }catch(e){}
  •                             }else{}
  •                         },
  •                         fail:function(res){ console.log('request失败,res:', res);},
  •                         complete:function(res){}
  •                     });
  •                 },
  •                 fail:function(res){
  •                     openSettingUserInfo(authHandler);
  •                 },
  •                 complete:function(res){},
  •             })
  •         },
  •         fail:function(res){
  •             console.log("登录失败!");
  •         },
  •         complete:function(res){},
  •     });
  • };
  • function openSettingUserInfo(authHandler){
  •     wx.getSetting({
  •         success(res){
  •             if(!res.authSetting['scope.userInfo']){
  •                 wx.showModal({
  •                     title:'',
  •                     content:'请先完成授权!在设置页面中勾选“用户信息”选项,否则部分功能将受限。',
  •                     showCancel:true,
  •                     confirmText:'前去设置',
  •                     confirmColor:'#004b97',
  •                     success:function(res){
  •                         if(res.confirm){
  •                             wx.openSetting({
  •                                 success:(res)=>{
  •                                     res.authSetting ={
  •                                         'scope.userInfo':true,
  •                                     };
  •                                     // authHandler.success();
  •                                 },
  •                                 complete:function(res){
  •                                     openSettingUserInfo(authHandler);
  •                                 },
  •                             })
  •                         }
  •                         if(res.cancel){
  •                             authHandler.fail();
  •                             // 注释上一行,启用下面这一行,就是强制用户授权
  •                             // openSettingUserInfo(authHandler); //强制授权
  •                         }
  •                         if(!res.confirm &&!res.cancel){
  •                             openSettingUserInfo(authHandler);
  •                         }
  •                     }
  •                 });
  •             }else{
  •                 getUserInfo(authHandler);
  •             }
  •         }
  •     })
  • };
  • /**
  • * 授权--用户登录
  • * @param  {[type]} authHandler [description]
  • * @return {[type]}                [description]
  • */
  • function userInfo(authHandler){
  •     var session =null;
  •     try{
  •         session = wx.getStorageSync('session');
  •         if(session){
  •             wx.checkSession({
  •                 success:function(){
  •                     setAppGlobalData(session);
  •                     authHandler.success();
  •                 },
  •                 fail:function(){
  •                     session =null;
  •                     getUserInfo(authHandler);
  •                 }
  •             });
  •         }else{
  •             session =null;
  •             getUserInfo(authHandler);
  •         }
  •     }catch(e){
  •         authHandler.fail();
  •     }
  •     return session;
  • }
  • /**
  • * 授权--地理位置 wx.getLocation, wx.chooseLocation
  • * @param  {[type]} authHandler [description]
  • * @return {[type]}             [description]
  • */
  • function userLocation(authHandler){
  •     wx.getSetting({
  •         success(res){
  •             if(!res.authSetting['scope.userLocation']){
  •                 wx.authorize({
  •                     scope:'scope.userLocation',
  •                     success(){},
  •                     complete(){
  •                         openSetting_userLocation(authHandler)
  •                     }
  •                 })
  •             }else{
  •                 authHandler.success();
  •             }
  •         }
  •     })
  • };
  • function openSetting_userLocation(authHandler){
  •     wx.getSetting({
  •         success(res){
  •             if(!res.authSetting['scope.userLocation']){
  •                 wx.showModal({
  •                     title:'',
  •                     content:'请先完成授权!在设置页面中勾选“地理位置”选项,否则部分功能将受限。',
  •                     showCancel:true,
  •                     confirmText:'前去设置',
  •                     confirmColor:'#004b97',
  •                     success:function(res){
  •                         if(res.confirm){
  •                             wx.openSetting({
  •                                 success:(res)=>{
  •                                     res.authSetting ={
  •                                         'scope.userLocation':true,
  •                                     };
  •                                 },
  •                                 complete:function(res){
  •                                     openSetting_userLocation(authHandler);
  •                                 },
  •                             })
  •                         }
  •                         if(res.cancel){
  •                             authHandler.fail();
  •                             // 注释上一行,启用下面这一行,就是强制用户授权
  •                             // openSetting_userLocation(authHandler); //强制授权
  •                         }
  •                         if(!res.confirm &&!res.cancel){
  •                             openSetting_userLocation(authHandler);
  •                         }
  •                     }
  •                 });
  •             }else{
  •                 userLocation(authHandler);
  •             }
  •         }
  •     })
  • };
  • /**
  • * 授权--通讯地址 wx.chooseAddress
  • * @param  {[type]} authHandler [description]
  • * @return {[type]}             [description]
  • */
  • function address(authHandler){
  •     wx.getSetting({
  •         success(res){
  •             if(!res.authSetting['scope.address']){
  •                 wx.authorize({
  •                     scope:'scope.address',
  •                     success(){},
  •                     complete(){
  •                         openSetting_address(authHandler)
  •                     }
  •                 })
  •             }else{
  •                 authHandler.success();
  •             }
  •         }
  •     })
  • };
  • function openSetting_address(authHandler){
  •     wx.getSetting({
  •         success(res){
  •             if(!res.authSetting['scope.address']){
  •                 wx.showModal({
  •                     title:'',
  •                     content:'请先完成授权!在设置页面中勾选“通讯地址”选项,否则部分功能将受限。',
  •                     showCancel:true

    鲜花

    握手

    雷人

    路过

    鸡蛋
    该文章已有0人参与评论

    请发表评论

    全部评论

    专题导读
    上一篇:
    HTML5如何转成小程序发布时间:2022-07-18
    下一篇:
    微信小程序:配置合法域名发布时间:2022-07-18
    热门推荐
    阅读排行榜

    扫描微信二维码

    查看手机版网站

    随时了解更新最新资讯

    139-2527-9053

    在线客服(服务时间 9:00~18:00)

    在线QQ客服
    地址:深圳市南山区西丽大学城创智工业园
    电邮:jeky_zhao#qq.com
    移动电话:139-2527-9053

    Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap