微信小程序调用微信登录流程

微信小程序调用微信登录流程

  1. 获取Code 使用wx.login()获取res.code
  2. Code作为参数,获取openid 需要后台服务实现,使用微信小程序,请求自建后台服务器,请求参数code,
  1. 使用Code换取Session_key与用户openID , 使用jssdk中的httpGet 发送请求

需要参数:appid,secret,js_code

  1. 小程序调用wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。
  2. 开发者服务器以code换取 用户唯一标识openid会话密钥session_key

之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。

登录凭证校验

临时登录凭证校验接口是一个 HTTPS 接口,开发者服务器使用 临时登录凭证code 获取 session_key 和 openid 等。

注意:

  1. 会话密钥session_key 是对用户数据进行加密签名的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥
  1. UnionID 只在满足一定条件的情况下返回。具体参看UnionID机制说明
  2. 临时登录凭证code只能使用一次

接口地址:

https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

请求参数

参数

必填

说明

appid

小程序唯一标识

secret

小程序的 app secret

js_code

登录时获取的 code

grant_type

填写为 authorization_code

在不满足UnionID下发条件的情况下,返回参数

参数

说明

openid

用户唯一标识

session_key

会话密钥

在满足UnionID下发条件的情况下,返回参数

参数

说明

openid

用户唯一标识

session_key

会话密钥

unionid

用户在开放平台的唯一标识

示例代码:

<?php

    $code = $_GET[code];

    $appid = ***;//appid

    $secret = ***”;//app_secret

    $js_code = $code;

    //grant_type = “authorizantion_code”;

    $api = https://api.weixin.qq.com/sns/jscode2session?appid={$appid}&secret={$secret}&js_code={$js_code}&grant_type=authorization_code;

    function httpGet($url) {

        $curl = curl_init();

        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

        curl_setopt($curl, CURLOPT_TIMEOUT, 500);

        // 为保证第三方服务器与微信服务器之间数据传输的安全性,所有微信接口采用https方式调用,必须使用下面2行代码打开ssl安全校验。

        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, true);

        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);

        curl_setopt($curl, CURLOPT_URL, $url);

        $res = curl_exec($curl);

        curl_close($curl);

        return $res;

    }

    $res = httpGet($api);

    $json = json_encode($res);

    echo $json;

?>

微信小程序调用微信登录流程

转载请注明来源:幽幽过客_{微信小程序调用微信登录流程}