小程序登录流程获取openid、session_key

这几天在看小程序,记录一下,方便自己日后回忆。
官方文档:在这里插入图片描述
首先通过wx.login()获取code(未授权的情况下也能调用),获取code,code传到服务器,加上appid,secret,code调用接口获得openid,session_key。

小程序代码:

  // 登录
  wx.login({
    success: res => {
      // 发送 res.code 到后台换取 openId, sessionKey
      wx.request({
        url: '',//服务器后台url
        data: { code: res.code },
        method: 'POST',
        header: {
          'content-type': 'application/x-www-form-urlencoded'
        },
        success: function (data) {
          //回调成功自行处理openid,session_key
          //that.getUserInfo(data.data.data.session_key);//解码获取unionID
        }
      })
    }
  })

php后台:

<?php
$appid = '';
$secret = '';
$code = trim($_POST['code']);      //小程序端传来的登陆code
$url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$secret.'&js_code='.$code.'&grant_type=authorization_code';
$data =  curlPOST($url);//GET,POST都可以
$data = json_decode($r,true);
$arr = array(
    'code' => 200,
    'msg' => '操作成功',
    'data' => array(
        'openid' => $data['openid'],
        'session_key' =>$data['session_key']
    )
);
echo json_encode($arr);

function curlPOST($url,$data=null)
{
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $tmpInfo = curl_exec($ch);
    if (curl_errno($ch)) {
        return curl_error($ch);
    }
    curl_close($ch);
    return $tmpInfo;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值