uniapp开发--⽹页授权,⼩⽩⼊门
uniapp开发也就是H5,但是在做⽤户管理(登录,获取⽤户信息等需要号的openId),作为⼀个⼊门⼩⽩,真是困难重重。翻看官⽅⽂档,知道对⽹页授权有两种⽅式:⼀种是静默授权,⽤户⽆感知,但⽆法获取⽤户的基础信息,如果要想拉取到⽤户信息,则需要使⽤另⼀种授权⽅式,由于这种⽅式涉及到隐私,所以需要⽤户同意才⾏。
开发程序
**::::::: *我只需要获取openId,只要静默授权就⾏。跳转⾄H5项⽬时,url上会⾃动⽣成code,我们获取到code,发给后台以获取openId。如果⽤开发者⼯具测试就需要在后台设置你为开发者。需要你的请求地址已经经过的认证(服务号已经申请成功),但是⼀般开发都是⽤测试号开发(但是测试号⽆法设置,反正我没有到怎么设置)。这时只有将项⽬打包好放在测试环境⽤真机测试了,就是⽐较⿇烦,需要你多console⼀些信息⽅便测试修改。
获取code代码如下
function getUrlParam (name){
var reg =new RegExp('(^|&)'+ name +'=([^&]*)(&|$)')
let url = window.location.href.split('#')[0]
let search = url.split('?')[1]
if(search){
var r = search.substr(0).match(reg)
if(r !== null)return unescape(r[2])
return null
}else{
return null
}
}
function wxAuthorize(){
let link = window.location.href;
let params =getUrlParam('code');// 地址解析
console.log("code:",params);
// 如果拿到code,调⽤授权接⼝,没有拿到就跳转授权链接获取
if(params){
console.log("获取到code");
// api.wxAuth(params); // 调⽤后台接⼝,授权
}else{
console.log("没有code");
let appid ='xxxxxxxxxx';//修改为你的appid
//1.使⽤encodeURIComponent以及JSON.stringify()⽅法对对象进⾏字符串化和编码,这样可以控制url参数的长度,参考⽰例代码(uni-app书写⽅式,⼩程序⾃⼰改。)
let uri =encodeURIComponent(link);
//2.接受信息的页⾯使⽤JSON.parse()以及decodeURIComponent()接收和解码参数。
//snsapi_base  //snsapi_base    scope = snsapi_base(不弹出授权页⾯,直接跳转,只能获取⽤户 openid )。
//snsapi_userinfo  弹出
let authURL = `open.weixin.qq/connect/oauth2/authorize?appid=${appid}&redirect_uri=${uri}&response_type=code&scope=snsapi_base& state=123#wechat_redirect`;
window.location.href = authURL;
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。