開發(fā)小程序中遇到的問(wèn)題--授權(quán)問(wèn)題

1流纹、獲取用戶信息的授權(quán)

如果小程序中需要在所有業(yè)務(wù)邏輯之前,需要獲取用戶的信息薄霜。那么我們第一件事就是獲取授權(quán)某抓,拿到userinfo纸兔。


image.png

上圖是微信開發(fā)者文檔的說(shuō)法,我們獲取用戶信息的授權(quán)時(shí)否副,必須是在button按鈕的基礎(chǔ)上汉矿,也就是說(shuō),用戶信息授權(quán)無(wú)法自動(dòng)彈出授權(quán)框备禀,需要在用戶點(diǎn)擊的基礎(chǔ)上洲拇,才能彈出授權(quán)框。

我的解決方案是曲尸,在首頁(yè)的onshow的生命周期函數(shù)里判斷用戶是否授權(quán)赋续,如果沒有授權(quán),就跳到授權(quán)的頁(yè)面队腐,如果是已經(jīng)授權(quán)過(guò)的就執(zhí)行首頁(yè)的業(yè)務(wù)邏輯蚕捉,進(jìn)行頁(yè)面渲染。那么是怎么判斷用戶是否進(jìn)行過(guò)授權(quán)呢柴淘。我用的方法是迫淹,用本地緩存,當(dāng)用戶第一次進(jìn)入的時(shí)候为严,在首頁(yè)判斷本地緩存里是否有用戶信息敛熬,如果有就進(jìn)行首頁(yè)的邏輯,如果沒有就跳到授權(quán)的頁(yè)面第股。在授權(quán)的頁(yè)面進(jìn)行用戶點(diǎn)擊授權(quán)应民。至于如何授權(quán)獲取用戶信息的,微信提供了一個(gè)button按鈕,里有一個(gè)open-type=‘getUserInfo’的屬性夕吻,可以授權(quán)獲取用戶信息诲锹。它提供了一個(gè)屬性函數(shù)。

<button open-type="getUserInfo" bindgetuserinfo="getUserInfo" class='shouquan_button'>
image.png

這個(gè)屬性函數(shù)涉馅,當(dāng)用戶點(diǎn)擊的時(shí)候我們可以拿到回調(diào)里的信息归园。然后在用戶同意授權(quán)的時(shí)候,把用戶的信息存到本地稚矿。同時(shí)返回到首頁(yè)庸诱。

getUserInfo: function (e) {
    var obj = {};
    if(e.detail.userInfo){
      console.log(e.detail.userInfo);
      //如果用戶同意授權(quán),把授權(quán)返回的用戶信息存到本地
      wx.setStorageSync('userInfo', e.detail.userInfo);
      obj.avatarUrl = e.detail.userInfo.avatarUrl;
      obj.nickName = e.detail.userInfo.nickName;
      obj.gender = e.detail.userInfo.gender;
      //登錄
      wx.login({
        success: res => {
          // 發(fā)送 res.code 到后臺(tái)換取 openId, sessionKey, unionId
          if(res.code){
            wx.setStorageSync('code', res.code);
            obj.code = res.code;
            api.Api('userlogin',obj,function(res){
              console.log(JSON.stringify(res.data.s));
              if(res.data.s){
                wx.setStorageSync('loginInfo', res.data.d);
                
                wx.redirectTo({
                  url: '/pages/index/index',
                })
              }else{
                wx.showToast({
                  title: res.data.m,
                  icon: 'none',
                })
              }
            })
          }else{
            wx.showToast({
              title: '登錄失斘畲А桥爽!' + res.data.errMsg,
              icon: 'none',
            }) 
          }
        }
      })
    }
  }

這樣就解決了用戶授權(quán)用戶信息的問(wèn)題。但是還有一個(gè)問(wèn)題被遺忘了昧识,就是在首頁(yè)的onshow里钠四,判斷的邏輯,那么就意味著我在判斷是否授權(quán)的同時(shí)跪楞,頁(yè)面已經(jīng)被渲染了形导,業(yè)務(wù)邏輯一直在跑的過(guò)程环疼。這個(gè)是個(gè)問(wèn)題。
于是朵耕,我在首頁(yè)的最大的view標(biāo)簽里炫隶,加了一個(gè)wx.if="{{shouquan}}" 同時(shí)在pages:data里設(shè)置為false,在onshow里判斷如果存在用戶信息阎曹,就為true伪阶,否則為false。這個(gè)頁(yè)面就不會(huì)提前渲染了处嫌,除非用戶同意了授權(quán)栅贴。

2、普通的授權(quán)

除了獲取用戶信息的授權(quán)以外熏迹,其他的授權(quán)檐薯,比如像:獲取地理位置,錄音注暗,保存到相冊(cè)等等坛缕。都可以使用wx.getSetting()獲取授權(quán)。

wx.getSetting({
      success(res) {
        if (!res.authSetting['scope.writePhotosAlbum']) {
          //如果是沒有獲取過(guò)用戶保存到相冊(cè)的授權(quán)
          wx.authorize({
            scope: 'scope.writePhotosAlbum',
            success() { 
             //用戶同意授權(quán)捆昏,進(jìn)行的業(yè)務(wù)邏輯
            },
            fail(errMsg){ wx.showToast({ title: errMsg,  })//用戶拒絕授權(quán) }
          })
        }else{
          //如果是獲取過(guò)用戶保存到相冊(cè)的授權(quán)赚楚,進(jìn)行業(yè)務(wù)邏輯
        }
      }
    });
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市骗卜,隨后出現(xiàn)的幾起案子宠页,更是在濱河造成了極大的恐慌,老刑警劉巖寇仓,帶你破解...
    沈念sama閱讀 210,978評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件举户,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡遍烦,警方通過(guò)查閱死者的電腦和手機(jī)俭嘁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)乳愉,“玉大人,你說(shuō)我怎么就攤上這事屯远÷Γ” “怎么了?”我有些...
    開封第一講書人閱讀 156,623評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵慨丐,是天一觀的道長(zhǎng)坡脐。 經(jīng)常有香客問(wèn)我,道長(zhǎng)房揭,這世上最難降的妖魔是什么备闲? 我笑而不...
    開封第一講書人閱讀 56,324評(píng)論 1 282
  • 正文 為了忘掉前任晌端,我火速辦了婚禮,結(jié)果婚禮上恬砂,老公的妹妹穿的比我還像新娘咧纠。我一直安慰自己,他們只是感情好泻骤,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,390評(píng)論 5 384
  • 文/花漫 我一把揭開白布漆羔。 她就那樣靜靜地躺著,像睡著了一般狱掂。 火紅的嫁衣襯著肌膚如雪演痒。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,741評(píng)論 1 289
  • 那天趋惨,我揣著相機(jī)與錄音鸟顺,去河邊找鬼。 笑死器虾,一個(gè)胖子當(dāng)著我的面吹牛讯嫂,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播曾撤,決...
    沈念sama閱讀 38,892評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼端姚,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了挤悉?” 一聲冷哼從身側(cè)響起渐裸,我...
    開封第一講書人閱讀 37,655評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎装悲,沒想到半個(gè)月后昏鹃,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,104評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡诀诊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年洞渤,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片属瓣。...
    茶點(diǎn)故事閱讀 38,569評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡载迄,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出抡蛙,到底是詐尸還是另有隱情护昧,我是刑警寧澤,帶...
    沈念sama閱讀 34,254評(píng)論 4 328
  • 正文 年R本政府宣布粗截,位于F島的核電站惋耙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绽榛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,834評(píng)論 3 312
  • 文/蒙蒙 一湿酸、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧灭美,春花似錦推溃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至梯捕,卻和暖如春厢呵,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背傀顾。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工襟铭, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人短曾。 一個(gè)月前我還...
    沈念sama閱讀 46,260評(píng)論 2 360
  • 正文 我出身青樓寒砖,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親嫉拐。 傳聞我的和親對(duì)象是個(gè)殘疾皇子哩都,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,446評(píng)論 2 348