知識(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)案例查看更多
相關(guān)閱讀
- 云南網(wǎng)站建設(shè)百度
- 云南網(wǎng)站建設(shè)方法
- 昆明小程序設(shè)計(jì)
- 云南網(wǎng)站建設(shè)首頁
- 文山小程序開發(fā)
- 紅河小程序開發(fā)
- 云南小程序開發(fā)
- 百度小程序公司
- 模版消息
- 小程序商城
- 公眾號(hào)模板消息
- 買小程序被騙
- 云南小程序開發(fā)制作
- 云南網(wǎng)站制作
- 云南網(wǎng)站建設(shè)公司排名
- 北京小程序開發(fā)
- 南通小程序制作公司
- 網(wǎng)站建設(shè)公司地址
- 網(wǎng)站建設(shè)開發(fā)
- 搜索引擎自然排名
- 昆明小程序哪家好
- 網(wǎng)站維護(hù)
- 開發(fā)微信小程序
- 怎么做網(wǎng)站
- 表單
- 支付寶小程序被騙
- 云南網(wǎng)站優(yōu)化公司
- 云南網(wǎng)站建設(shè)特性
- flex
- 小程序生成海報(bào)