uni-app之APP和小程序微信授权方法
程序员文章站
2023-11-21 23:38:04
uni-app 介绍
uni-app 是一个使用 vue.js 开发跨平台应用的前端框架。
适用平台:android、ios、微信小程序。实现了一套代码,同时发布到...
uni-app 介绍
uni-app 是一个使用 vue.js 开发跨平台应用的前端框架。
适用平台:android、ios、微信小程序。实现了一套代码,同时发布到android、ios、微信小程序。
参考官方:
app微信授权
检测服务商
检测手机上是否安装微信、qq、新浪微博等。
uni.getprovider({ service: 'oauth', success: function (res) { console.log(res.provider); } });
授权登录
获取openid,(unionid)等 uni.login({ provider: 'weixin', success: function (loginres) { console.log(json.stringify(loginres)); } });
获取用户信息
uni.getuserinfo({ provider: 'weixin', success: function(infores) { console.log('-------获取微信用户所有-----') console.log(json.stringify(infores.userinfo)); } });
示例代码
<!-- #ifdef app-plus --> <button class="" @click="applogin">app微信授权登录</button> <!-- #endif --> applogin: function() { uni.getprovider({ service: 'oauth', success: function(res) { console.log(res.provider); //支持微信、qq和微博等 if (~res.provider.indexof('weixin')) { uni.login({ provider: 'weixin', success: function(loginres) { console.log('-------获取openid(unionid)-----'); console.log(json.stringify(loginres)); // 获取用户信息 uni.getuserinfo({ provider: 'weixin', success: function(infores) { console.log('-------获取微信用户所有-----'); console.log(json.stringify(infores.userinfo)); } }); } }); } } }); },
小程序微信授权
获取用户基本信息
为优化用户体验,使用 wx.getuserinfo 接口直接弹出授权框的开发方式将逐步不再支持。从2018年4月30日开始,小程序与小游戏的体验版、开发版调用 wx.getuserinfo 接口,将无法弹出授权询问框,默认调用失败。正式版暂不受影响。开发者可使用以下方式获取或展示用户信息。
小程序使用 button 组件,并将 open-type 指定为 getuserinfo 类型,获取用户基本信息。
参考官方:
示例代码:
<!-- #ifdef mp-weixin --> <button class="" open-type="getuserinfo" @getuserinfo="wxgetuserinfo" withcredentials="true">微信授权获取用户信息</button> <!-- #endif --> wxgetuserinfo:function(res){ if (!res.detail.iv) { uni.showtoast({ title: "您取消了授权,登录失败", icon: "none" }); return false; } console.log('-------用户授权,并获取用户基本信息和加密数据------') console.log(res.detail); },
微信登录
参考官方:
(1)页面uni.login获取code
(2)后端通过code获取sessionkey、openid(unionid)等,后端调用接口如下:
https://api.weixin.qq.com/sns/jscode2session?appid=appid&secret=secret&js_code=jscode&grant_type=authorization_code
(3)示例代码
<!-- #ifdef mp-weixin --> <button class="" @click="wxlogin">微信登录</button> <!-- #endif --> wxlogin: function() { uni.login({ provider: 'weixin', success: function(loginres) { console.log('-------获取code-------') console.log(loginres.code); wx.request({ url: 'https://xxxxx'+loginres.code, success: function(info) { console.log('-------获取sessionkey、openid(unionid)-------') console.log(info); }, fail: function(e) { console.log(e) } }) } }); }
微信登录状态监测
<!-- #ifdef mp-weixin --> <button class="" @click="checklogin">微信登录检测</button> <!-- #endif --> checklogin: function() { wx.checksession({ success() { console.log('ok'); // session_key 未过期,并且在本生命周期一直有效 }, fail() { // session_key 已经失效,需要重新执行登录流程 //wx.login() // 重新登录 console.log('expire'); } }) },
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
下一篇: 分享产品推广6条经验