微信小程序登录,获取code,获取openid,获取session_key

微信小程序登录

wx.login(Object object)#

调用接口获取登录凭证(code)。通过凭证进而换取用户登录态信息,包括用户的唯一标识(openid)及本次登录的会话密钥(session_key)等。用户数据的加解密通讯需要依赖会话密钥完成。


微信小程序登录,获取code,获取openid,获取session_key_第1张图片
image.png

code 换取 session_key#

这是一个 HTTPS 接口,开发者服务器使用登录凭证 code 获取 session_key 和 openid。其中 session_key 是对用户数据进行加密签名的密钥。为了自身应用安全,session_key 不应该在网络上传输。
接口地址:
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

这个操作可以后台来调取,也可以前台来调取。


public function get_openid(){
    $param = [
        'appid'     => $_GET['appid'],
        'secret'    => $_GET['secret'],
        'js_code'   => $_GET['js_code'],
        'grant_type'=> $_GET['grant_type']
    ];
    $url    = 'https://api.weixin.qq.com/sns/jscode2session?';
    $url    .= 'appid='.$param['appid'].'&secret='.$param['secret'].'&js_code='.$param['js_code'].'&grant_type='.$_GET['grant_type'];
*注意 json_decode之前要先 stripslashes() 否则容易丢失斜杠.造成无法解密
    $result = json_decode(stripslashes(Http::doGet($url,300)),true);

    $this->json->setAttr('data',$result);
    $this->json->Send();
}
{
    "errno": 0,
    "errdesc": "",
    "data": {
        "session_key": "WFFpxZkfvg0xPjZ6oI7YzA==",
        "openid": "ooBzj5Ot2GmNgty-tKtkT567aGiM"
    }
}

你可能感兴趣的:(微信小程序登录,获取code,获取openid,获取session_key)