首页 技术 正文
技术 2022年11月14日
0 收藏 889 点赞 3,393 浏览 1533 个字
 /* 微信授权接口 */
//1、设置路由
router.get('/wechat/userinfo', function(req, res) {
var cb = req.query.cb;
//设置cookie
res.cookie(wechat_userinfo_callback_url, cb);
var url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" + appid + "&redirect_uri=http://m.moretao.com/wechat/userinfo/callback&response_type=code&scope=snsapi_userinfo#wechat_redirect";
//2、重定向到拼接url
res.redirect(url);
});
//3、重定向的url经过微信服务器转到如下地址;
router.get('/wechat/userinfo/callback', function(req, res) {
//获得code
var code = req.query.code;
//用code拼接url
var url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + appid + "&secret=" + appsecret + "&code=" + code + "&grant_type=authorization_code";
//4、后台用request请求数据;目的是为了获取刷新token
request.get(url, function(error, response, body) {
//获得刷新用的token值
var json = JSON.parse(body);
//用得到的刷新token值拼接url
var refresh_url = "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=" + appid + "&grant_type=refresh_token&refresh_token=" + json.refresh_token;
//5、后台用request请求数据;为了获取最终access_token
request.get(refresh_url, function(error, response, refresh) {
var json = JSON.parse(refresh);
//用access_token拼接url
var info_url = "https://api.weixin.qq.com/sns/userinfo?access_token=" + json.access_token + "&openid=" + json.openid + "&lang=zh_CN";
//6、后台用request请求数据,获取用户数据;
request.get(info_url, function(error, response, info) {
//通过cookie取出开始传入的url地址
var callback = req.cookies[wechat_userinfo_callback_url];
//将数据拼接到url中,并且将数据用encodeURLComponent转码;
var str = "?data=";
if(callback.indexOf('?') > -1) str = "&data=";
var ret = callback + str + encodeURIComponent(info);
//7、重定向到目标url并加上转码的数据,前端得到后需要转码处理
res.redirect(ret);
});
});
});
});
相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,122
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,594
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,439
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,210
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,846
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,931