uni-app第三方登陸-微信
uni-app第三方登陸-微信
結合上文全域性登陸校驗,實現微信授權登入
官方手冊地址: https://uniapp.dcloud.io/api/plugins/login?id=getuserinfo
一 、寫兩個介面
login.vue 用於使用者登陸
my.vue 我的介面,存放校驗登陸的函式
1.1 my.vue
<script>
var loginRes;
export default {
onLoad:function(){
loginRes = this.checkLogin('../my/my', '2');
if(!loginRes){
return;
}
}
}
</script>
- 2 login.vue
<script>
var _self;
export default {
data() {
return {
backpage:'',
backtype:''
};
},
onLoad:function(options){
_self = this;
// #ifdef APP-PLUS
uni.login({
success: (res) => {
// console.log(JSON.stringify(res))
// 第三方登陸
// res 物件格式
//{"code":"***",
//"authResult":{
//"openid":"***",
//"scope":"snsapi_userinfo",
//"refresh_token":"**",
//"code":"****",
//"unionid":"***",
//"access_token":"***",
//"expires_in":7200
//},
//"errMsg":"login:ok"}
uni.getUserInfo({
success: (info) => {
// console.log(JSON.stringify(info))
// info 物件格式
// {"errMsg":"getUserInfo:ok",
// "rawData":"...
// "userInfo":{
//"openId":"***",
//"nickName":"***",
//"gender":1,
// "city":"Xi'an",
// "province":"Shaanxi",
// "country":"China",
// "avatarUrl":"頭像",
// "unionId":"oU5Yyt_agt547zWyA0v0eLfFPqxo"
//},"signature":""}
// 與伺服器互動將資料提交到服務端資料庫
uni.request({
url: _self.apiServer+'member&m=login',
method: 'POST',
header: {'content-type' : "application/x-www-form-urlencoded"},
data: {
openid: info.userInfo.openId,
name: info.userInfo.nickName,
face: info.userInfo.avatarUrl,
},
success: res => {
console.log(JSON.stringify(res))
res = res.data;
if(res.status == 'ok'){
uni.showToast({
title: '登陸成功',
mask: false,
duration: 1500
});
uni.setStorageSync('SUID' , res.data.u_id + '');
uni.setStorageSync('SRAND', res.data.u_random + '');
uni.setStorageSync('SNAME', res.data.u_name + '');
uni.setStorageSync('SFACE', res.data.u_face + '');
// 判斷跳轉方式
if(options.backtype == '1'){
uni.redirectTo({url:options.backpage});
}else{
uni.switchTab({url:options.backpage});
}
}else{
uni.showToast({title:res.data});
}
},
fail: () => {
console.log('登陸失敗')
},
complete: () => {}
});
},
fail: () => {
uni.showToast({title:"微信登入授權失敗"});
}
})
},
fail: () => {
uni.showToast({title:"微信登入授權失敗"});
}
})
// #endif
console.log(options)
}
}
</script>
主要涉及到2個方法:
- uni.login
- uni.getUserInfo
uni.login
用於觸發第三方登陸,調起微信登陸,登陸成功後返回物件格式如下:
{
"code":"***",
"authResult":{
"openid":"***",
"scope":"snsapi_userinfo",
"refresh_token":"**",
"code":"****",
"unionid":"***",
"access_token":"***",
"expires_in":7200
},
"errMsg":"login:ok"
}
uni.getUserInfo
獲取使用者資訊,通過上方的 uni.login 方法會得到使用者 access_token,故 uni.getUserInfo 在此基礎上獲取使用者的 openid、userInfo(頭像、暱稱) 等資訊。
{
"errMsg":"getUserInfo:ok",
"rawData":"...
"userInfo":{
"openId":"***",
"nickName":"***",
"gender":1,
"city":"Xi'an",
"province":"Shaanxi",
"country":"China",
"avatarUrl":"頭像",
"unionId":"oU5xxxxxxxxxxeLfFPqxo"
},
"signature":""
}
uni.request
此方法為 uni-app 中用於網路請求。詳細見官方手冊:https://uniapp.dcloud.io/api/request/request?id=request
二、效果
點選 my.vue 將會觸發 微信登陸授權介面,如下:
登陸成功後,向遠端伺服器傳送一個儲存使用者資訊的請求
相關文章
- Lumen/Laravel 中支付寶 / 微信第三方 App 登陸LaravelAPP
- 用uni-app開發app應用登陸APP
- Android探索與鞏固(微信QQ第三方登陸填坑)Android
- 微信授權註冊或微信登陸 微信授權登陸 基於若依vue 實現Vue
- uni-app 微信小程式授權登入APP微信小程式
- Java QQ授權第三方登陸Java
- 如何設計 QQ、微信、微博、Github 等等,第三方賬號登陸 ?(附表設計)Github
- 淺談微信小程式登陸與Oauth微信小程式OAuth
- uni-app 微信支付APP
- SSH安全登陸原理:密碼登陸與公鑰登陸密碼
- Laravel5.6 實現第三方登入 微信登入Laravel
- keycloak整合微信登陸~解決國內微信整合的問題
- 全部按教程走,第三方登陸,返回的是:
- django 中 Oauth2 實現第三方登陸DjangoOAuth
- 友盟iOS微信登陸沒有回撥的原因iOS
- MySQL命令列登陸,遠端登陸MySQLMySql命令列
- win10 怎麼登陸2個微信_win10同時登入2個微信的方法Win10
- oracle 登陸Oracle
- 共享登陸
- win10 如何登陸多個微信 win10 開啟多個微信方法Win10
- APP開發,微信第三方登入的介紹APP
- 做一個php登陸頁面,用pc登陸和用手機登陸彈出來的登陸頁面不一樣。PHP
- RHEL 6.5 登陸後放回登陸介面,迴圈登入問題
- Linux配置SSH免密登陸(公私鑰登陸)Linux
- 【Ecstore2.0】第三方信任登陸問題解決_備忘
- postgresql如何登陸SQL
- PHP 微博登陸PHP
- 封裝QQ、微信、微博的第三方登入和分享封裝
- koa2+vue實現登陸以及是否登陸控制Vue
- sau交流學習社群第三方登陸github--oauth來實現使用者登入GithubOAuth
- 使用springboot+angular實現web端微信掃碼登陸Spring BootAngularWeb
- 微信小程式,使用button元件讓使用者主動登陸方式。微信小程式元件
- vnc登陸,7個步驟在CentOS 7下vnc登陸VNCCentOS
- curl模擬請求、登陸以及帶驗證碼登陸
- ios 上qq以及微信上面第三方庫的登入iOS
- 執行uni-app到微信開發者工具APP
- uni-app 微信小程式全域性分享APP微信小程式
- git 登陸時注意Git