发表日期:2019-08 文章编辑:小灯 浏览次数:671
小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。
说明:
小程序调用wx.login() 获取 临时登录凭证code ,并回传到开发者服务器。
开发者服务器以code换取 用户唯一标识openid 和 会话密钥session_key。
之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。
//app.jsApp({onLaunch: function() {wx.login({success: function(res) {if (res.code) {//发起网络请求wx.request({url: 'https://test.com/onLogin',data: {code: res.code}})} else {console.log('登录失败!' + res.errMsg)}}});}})
临时登录凭证校验接口是一个 HTTPS 接口,开发者服务器使用 临时登录凭证code 获取 session_key 和 openid 等。
注意:
会话密钥session_key 是对用户数据进行加密签名的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。
UnionID 只在满足一定条件的情况下返回。具体参看UnionID机制说明
临时登录凭证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$post = file_get_contents("php://input");//接收POST数据$postdata = json_decode($post,TRUE);$appid = 'appid';//appid$secret = 'secret';//secret$arr['js_code'] = $postdata['code'];//用户登录凭证(有效期五分钟)$arr['appid'] = $appid;$arr['secret'] = $secret;$arr['grant_type'] ='authorization_code';$url = "https://api.weixin.qq.com/sns/jscode2session?";// curl请求获取openid$url = $url . http_build_query($arr);//拼接参数$res = curl_request($url);return $res;function curl_request($url, $post = '', $cookie = '', $returnCookie = 0) {//参数1:访问的URL,参数2:post数据(不填则为GET),参数3:提交的$Cookies,参数4:是否返回$cookies$curl = curl_init(); //初始化curl会话curl_setopt($curl, CURLOPT_URL, $url);curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; Trident/6.0)');curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);curl_setopt($curl, CURLOPT_AUTOREFERER, 1);curl_setopt($curl, CURLOPT_REFERER, "http://XXX");if ($post) {curl_setopt($curl, CURLOPT_POST, 1);curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));}if ($cookie) {curl_setopt($curl, CURLOPT_COOKIE, $cookie);}curl_setopt($curl, CURLOPT_HEADER, $returnCookie);curl_setopt($curl, CURLOPT_TIMEOUT, 10);curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);$data = curl_exec($curl); //执行curl会话if (curl_errno($curl)) {return curl_error($curl);}curl_close($curl); //关闭curl会话if ($returnCookie) {list($header, $body) = explode("\r\n\r\n", $data, 2);preg_match_all("/Set\-Cookie:([^;]*);/", $header, $matches);$info['cookie'] = substr($matches[1][0], 1);$info['content'] = $body;return $info;} else {return $data;}}
日期:2019-11 浏览次数:4784
日期:2019-11 浏览次数:11205
日期:2019-11 浏览次数:3645
日期:2019-11 浏览次数:4556
日期:2019-11 浏览次数:4655
日期:2019-11 浏览次数:6323
日期:2019-11 浏览次数:4575
日期:2019-11 浏览次数:15026
日期:2019-11 浏览次数:3925
日期:2019-11 浏览次数:5693
日期:2019-11 浏览次数:4529
日期:2019-11 浏览次数:3863
日期:2019-11 浏览次数:9622
日期:2019-11 浏览次数:7535
日期:2019-11 浏览次数:4226
日期:2019-11 浏览次数:3619
日期:2019-11 浏览次数:8159
日期:2019-11 浏览次数:3873
日期:2019-11 浏览次数:4045
日期:2019-11 浏览次数:4117
日期:2019-11 浏览次数:3676
日期:2019-11 浏览次数:4263
日期:2019-11 浏览次数:9449
日期:2019-11 浏览次数:4463
日期:2019-11 浏览次数:4456
日期:2019-11 浏览次数:4042
日期:2019-11 浏览次数:11360
日期:2019-11 浏览次数:6656
日期:2019-11 浏览次数:6916
日期:2019-11 浏览次数:4268
Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.