欧美三级国产三级日韩三级_亚洲熟妇丰满大屁股熟妇_欧美亚洲成人一区二区三区_国产精品久久久久久模特

快應(yīng)用之授權(quán)登錄 - 新聞資訊 - 云南小程序開發(fā)|云南軟件開發(fā)|云南網(wǎng)站建設(shè)-昆明葵宇信息科技有限公司

159-8711-8523

云南網(wǎng)建設(shè)/小程序開發(fā)/軟件開發(fā)

知識(shí)

不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!

您當(dāng)前位置>首頁 » 新聞資訊 » 小程序相關(guān) >

快應(yīng)用之授權(quán)登錄

發(fā)表時(shí)間:2021-4-30

發(fā)布人:葵宇科技

瀏覽次數(shù):176

1.華為賬號(hào)授權(quán)

  • 先要在華為快應(yīng)用網(wǎng)站上先創(chuàng)建一個(gè)快應(yīng)用,這個(gè)快應(yīng)用的名字等信息要和你即將要開發(fā)的快應(yīng)用名字一樣
獲取appid方法的鏈接

  • 證書指紋必須在華為ide上才能獲取
  • 獲取授權(quán)的接口文檔也應(yīng)該查看華為的開發(fā)文檔,并且在調(diào)試的時(shí)候,必須使用華為ide來測(cè)試授權(quán),如果使用快應(yīng)用官方的,則授權(quán)返回的數(shù)據(jù)都是一些模擬的數(shù)據(jù)
  • 在生成指紋證書后,在sign文件夾中會(huì)有release文件夾,且生成pem后綴的文件,要將release中的文件復(fù)制到debug文件夾下,最好是將debug里面的文件刪除,然后再粘貼到文件夾中,替換可能會(huì)出現(xiàn)問題
  • 首先用接口獲取手機(jī)機(jī)型
/* 如:華為則返回HUAWEI,華為榮耀也是返回HUAWEI */
device.getInfo({
    success: res => {
      this.deviceName = res.manufacturer;
    }
})
  • 然后使用授權(quán)接口獲取accessToken,這里華為提供的api和快應(yīng)用官網(wǎng)提供的字段有些不同
  • 并且,華為文檔中使用一個(gè)api就能夠獲得到用戶的相關(guān)信息,但是快應(yīng)用官網(wǎng)上的文檔則需使用兩個(gè)api來獲取用戶的基本信息
/* 華為賬號(hào)授權(quán) */
account.authorize({
  appid: '', /* 華為文檔提供的字段及華為快應(yīng)用才有的appid */
  state: '1', /* state可以指定任意值,認(rèn)證服務(wù)器會(huì)原封不動(dòng)地返回這個(gè)值 */
  type: 'token', /* 設(shè)置type為獲取token */
  scope: 'scope.baseProfile', /* 設(shè)置為scope.baseProfile則獲取用戶的基本信息 */
  success: auth => {
    /* 華為文檔中使用authorize就能夠獲取用戶的基本信息,包括昵稱頭像及openid和unionid,但是快應(yīng)用官方文檔則寫的是要使用下面這個(gè)接口來返回用戶的信息 */
    account.getProfile({
      appid: '',
      token: auth.accessToken,
      success: data => {
        let userInfo = {};
        /* 因?yàn)槲臋n中有寫用戶的相關(guān)信息都可能為空,如果你要用戶頭像,要判斷下,不知華為測(cè)試放是否是使用測(cè)試賬號(hào),沒有頭像啥的,如果你直接賦值為data.avatar.default,則會(huì)報(bào)錯(cuò),但是你用自己賬號(hào)測(cè)試不會(huì)出現(xiàn)頭像報(bào)錯(cuò)的現(xiàn)象 */
        if(data.nickname) {
          userInfo.nickname = data.nickname;
        } else {
          userInfo.nickname = '小九';
        }
        if(data.avatar.default) {
          userInfo.avatar = data.avatar.default;
        } else {
          userInfo.avatar = 'defaultimg.png';
        }
      },
      fail: () => {
        prompt.showToast({
          message: '授權(quán)失敗'
        })
      }
    })
  },
  fail: () => {
    prompt.showToast({
      message: '授權(quán)失敗'
    })
  }
})
因快應(yīng)用官方文檔和華為文檔都寫了用戶的信息均可能為空,所以,走授權(quán)這條路不是很現(xiàn)實(shí)

2.微信賬號(hào)授權(quán)

  • 微信賬號(hào)授權(quán)也有很多坑,微信賬號(hào)的那個(gè)簽名要在開發(fā)工具中的hap中點(diǎn)擊生成MD5,然后你在測(cè)試的時(shí)候,上面的忘了講了,你生成證書時(shí)會(huì)生成一個(gè)sign文件夾,即使你的項(xiàng)目還沒有完全完成,你也要先生成正式的證書,然后將release里的兩個(gè)證書文件復(fù)制到debug里面,最好是先刪除debug文件夾中的文件然后直接粘貼到debug中,如果你的sign中只有release文件夾,可以自己新建一個(gè)debug文件夾
  • 微信授權(quán)你要先判斷一下用戶的手機(jī)中是否有微信或者用戶的微信版本是否滿足快應(yīng)用授權(quán)
/* 返回NONE 表示當(dāng)前微信登錄不可用,微信未安裝或者手機(jī)系統(tǒng)不支持 */
if(wxaccount.getType() == 'NONE') {
    prompt.showToast({
      message: '手機(jī)系統(tǒng)不支持快應(yīng)用,請(qǐng)升級(jí)后重試'
    })
    this.showLogin = false;
} 
  • 然后再進(jìn)行授權(quán)
wxaccount.authorize({
  scope: 'snsapi_userinfo',  /* snsapi_userinfo為授權(quán)用戶基本信息 */
  state: 'randomString',  /* 用于保持請(qǐng)求和回調(diào)的狀態(tài),授權(quán)請(qǐng)求后原樣帶回給第三方。該參數(shù)可用于防止 csrf 攻擊(跨站請(qǐng)求偽造攻擊),建議第三方帶上該參數(shù),可設(shè)置為簡(jiǎn)單的隨機(jī)數(shù)加 session 進(jìn)行校驗(yàn) */
  success: data => {
    console.log(data)
    /* 獲取code */
    console.log(data.code)
  },
  fail: () => {
    prompt.showToast({
      message: '授權(quán)失敗'
    })
  },
})

3.魅族授權(quán)

  • 魅族的授權(quán)是使用網(wǎng)頁端,這里又學(xué)了一招新的東西,就是網(wǎng)頁與快應(yīng)用進(jìn)行通信
/* 前端代碼 */
<template>
  <web id="web" trustedurl="{{trustedurl}}" @message="handleMessage" src="https://open-api.flyme.cn/oauth/authorize?response_type=token&scope=uc_basic_info"></web>
</template>
<script>
  import router from '@system.router';
  import prompt from '@system.prompt';
  export default {
    data() {
      return {
        /* 網(wǎng)頁往快應(yīng)用中發(fā)消息必須加上這個(gè)字段,就是你要進(jìn)行通信的鏈接,最好進(jìn)行轉(zhuǎn)義 */
        trustedurl: [/^https:\/\/baidu.com/]
      }
    },
    /* 接收網(wǎng)頁端返回的消息 */
    handleMessage(msg) {
      /* 網(wǎng)頁端往快應(yīng)用發(fā)送消息無法直接發(fā)送對(duì)象,但是可以發(fā)送json字符串 */
      /* 這個(gè)msg是我這邊后端進(jìn)行了一些數(shù)據(jù)的格式化 */
      let message = JSON.parse(msg.message);
      console.log(message)      
    }
  }
</script>
  • 后端鏈接返回處理
system.postMessage('hello')
/* 文檔是這樣寫的,但是呢,在html中直接這樣寫是不行的,應(yīng)該是下面這樣寫 */
window.system.postMessage('hello')

4.使用手機(jī)號(hào)加驗(yàn)證碼登錄

相關(guān)案例查看更多