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

- 小程序调用wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。
- 开发者服务器以code换取 用户唯一标识openid 和 会话密钥session_key。
之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。
登录凭证校验
临时登录凭证校验接口是一个 HTTPS 接口,开发者服务器使用 临时登录凭证code 获取 session_key 和 openid 等。
注意:
- 会话密钥session_key 是对用户数据进行加密签名的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。
- UnionID 只在满足一定条件的情况下返回。具体参看UnionID机制说明
- 临时登录凭证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”;
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;
?>