首页 > 编程知识 正文

微信小程序如何实现授权登录,微信小程序一键授权完整的登录流程

时间:2023-05-03 14:38:19 阅读:270681 作者:1212

1. 在  *.wxml 页面添加一个按钮,open-type属性必须是getUserInfo,同时绑定一个点击事件;

<view><button open-type="getUserInfo" bind:tap="login" type="default">登录</button></view>

2. 在  *.jsl 页面 出发点击事件并 触发一个 wx.getUserProfile 方法用于弹出一个授权弹框

3.小程序端完整代码展示

login(evt){ wx.getUserProfile({ desc: 'desc', //desc不可删除 success:res=>{ // console.log(res); 成功回调 if(res.userInfo){ wx.login({ success:ret=>{ // console.log(ret); var code = ret.code wx.request({ url: 'http://www.tp6.com/api/login/login', //仅为示例,并非真实的接口地址 data:{ code:code }, method:"POST", header: { 'content-type': 'application/json' // 默认值 }, success (res) { console.log(res.data.data) wx.setStorageSync('token', res.data.data.token); wx.setStorageSync('openid', res.data.data.openid); wx.setStorageSync('session_key', res.data.data.session_key); wx.navigateTo({ url: '/pages/edit/edit', }) } }) } }) } } }) }

4.展示后台代码(php)

public function wxLogin(Request $request) { $code = $request->post('code'); //小程序端获取 $appid = 'xxxxxxxxxxxxxxxxxxxx'; //微信平台获取 $appsecret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'; //微信平台获取 //$grant_type = "authorization_code"; $url = "https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$appsecret&js_code=$code&grant_type=authorization_code"; $res = json_decode(file_get_contents($url), true); //返回openid,session_key $getUserInfo = User::getUserInfo($res['openid']); if ($getUserInfo) { $id = $getUserInfo['id']; } else { $params['openid'] = $res['openid']; $addUser = User::addUser($params); $id = $addUser['id']; } $res['token'] = signToken($id); return jsonData(200, 'ok', $res); }

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。