可以直接复制粘贴,只需要改一些东西就可以了
首先在wxml中用微信自带的button开放属性
<button open-type="getUserProfile" type="primary" bindtap="login">授权登录</button>
然后在对应的js中创建一个login方法,因为上面bindtap指向的是login,所以就要创建一个新的方法
login(evt){
//获取微信授权弹框
wx.getUserProfile({
desc: 'desc',
success:(res)=>{
//打印是否接到微信数据
console.log(res);
//wx.login是登录的意思,就是登录方法
wx.login({
success: (res1) => {
//开始打印看是否接到值
console.log(res1);
let code=res1.code;
let nickname=res.userInfo.nickName;
let avatarUrl=res.userInfo.avatarUrl;
//wx.request是跳转后台方法
wx.request({
//url跳转的地址(后台的接口)
url: 'url',
//怎么请求(可以用get也可以用post)
method:"POST",
//data传值,从小程序传到后端的数据
data:{code:code,nickname:nickname,avatarUrl:avatarUrl},
//成功回调
success:function(rrr){
//wx.navigateTo跳转的方法
wx.navigateTo({
//跳转到哪个页面
url: '/pages/',
})
}
})
},
})
}
})
},
然后在后端控制器中写url的接口
function login(Request $request){
$data=$request->post();
$code=$data['code'];
//小程序的id
$Appid="";
//小程序的Secret
$AppSecret="";
$loginurl="https://baitexiaoyuan.oss-cn-zhangjiakou.aliyuncs.com/updatecrm/php/20231019/jscode2session
$res=json_decode(file_get_contents($loginurl),true);
$login=[
'openid'=>$res['openid'],
'session_key'=>$res['session_key'],
//微信昵称
'nickname'=>$data['nickname'],
];
//直接写表明后面跟条件
$url=User::where('openid',$login['openid'])->first(); if (isset($url)){
return [
'code'=>203,
'data'=>'',
'msg'=>'数据已存在'
];
}else{
//DB里面跟你要添加的表名
\DB::table('User')->insert($login);
return [
'code'=>200,
'data'=>'',
'msg'=>'添加成功'
];
} }
微信授权登录就可以实现了

发表评论 取消回复