微信获取用户数据后台写法,author2.0认证
/* 微信授权接口 */
//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);
});
});
});
});
微信获取用户数据后台写法,author2.0认证的更多相关文章
- C#开发微信门户及应用(14)-在微信菜单中采用重定向获取用户数据
我曾经在系列文章中的<C#开发微信门户及应用(11)--微信菜单的多种表现方式介绍>中介绍了微信菜单里面的重定向操作,通过这个重定向操作,我们可以获取一个code值,然后获取用户的open ...
- .NET 微信开发之 获取用户数据
通过微信接口获取用户信息主要分为以下几个步骤: a.获取公众号的access_token b.通过查询所有用户OPenid接口获取所有用户. string url = "https://ap ...
- 英特尔CEO科再奇:尚未发现通过漏洞获取用户数据的行为
1月9日消息,英特尔CEO科再奇在美国西部时间1月8日举行的2018年CES中发表主题演讲,他在开场时面向产业界谈到了最近报道的安全研究发现.科再奇表示:“在我们开始之前,我想借此机会感谢整个行业,为 ...
- onLaunch与onLoad同步获取用户数据
前言 在开发项目的时候遇到从全局获取用户信息,逻辑是从app.js中的onLauch获取,page页面的onLoad拿到数据填充到页面.遇到的问题是onLauch与onLoad是异步的,没办法从页面判 ...
- 【微信公众号开发】【8】网页授权获取用户基本信息(OAuth 2.0)
前言: 1,在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名. 请注意,这 ...
- 微信获取用户的openid和详细信息
获取用户的信息的原理,首先用户会点击一个url,这个url会包含一个参数redirect_uri,这个url是指向微信那边的服务器的,然后微信会把这个http请求重定向到redirect_uri,即我 ...
- asp.net core 微信获取用户openid
获取openid流程为首先根据微信开发参数构造AuthorizeUrl认证链接,用户跳转到该链接进行授权,授权完成将跳转到回调页(首次认证需要授权,后面将直接再跳转至回调页),此时回调页中带上一个GE ...
- 微信获取用户信息的两个接口和两个ACCESS_TOKEN
有一段时间没有搞微信开发了 ,今天突然要改一下程序! 回头一看 微信的帮助文档太tm的稀烂的,太难懂了,这做个笔记以后看着方便 微信有2个ACCESS_TOKEN, 1,基础接口的token 获取接口 ...
- SoringCloud(四) - 微信获取用户信息
1.项目介绍 2.微信公众平台 和 微信开放文档 2.1 微信公众平台 2.1.1 网址链接 https://mp.weixin.qq.com/debug/cgi-bin/sandboxinfo?ac ...
随机推荐
- 老司机带你用vagrant打造一站式python开发测试环境
前言 作为一个学习和使用Python的老司机,好像应该经常总结一点东西的,让新司机尽快上路,少走弯路,然后大家一起愉快的玩耍. 今天,咱们就使用vagrant配合xshell打造一站式Python ...
- 重读LPTHW-Lesson15-17
1.引入sys模块,argv参数变量解包,可以多一种方式获取用户输入: # filename:argv_test.pyfrom sys import argv script,first,second ...
- Python:staticmethod vs classmethod
Being educated under Java background, static method and class method are the same thing. But not so ...
- linux----ln
1.格式 ln source_file_path target_file_path 2.执行ln 命令的用户要对source_file_path有写权限,才可以创建软连接. 3.souce_file这 ...
- python 学习day5(模块)
一.模块介绍 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其他代码用来调用即可,提供了代码的重用性和代码间的耦合.而对于一个复杂的功能来,可能 ...
- Mono For Android 实现索引分段器效果
这两天看了个Demo,自己也动手写了下,觉得效果还不错,分享一下! 主要是利用ListActivity中自带了一个ListView和ListAdapter来实现的,当然也可以在一般的Activity中 ...
- 转:JavaScript函数式编程(一)
转:JavaScript函数式编程(一) 一.引言 说到函数式编程,大家可能第一印象都是学院派的那些晦涩难懂的代码,充满了一大堆抽象的不知所云的符号,似乎只有大学里的计算机教授才会使用这些东西.在曾经 ...
- 【IOS】在SDK中打开其他接入应用的解决方案
在SDK中打开其他接入应用的解决方案 一直以来,在iOS的开发中,在程序中打开另外一个应用是不允许.后来有正义之士用class-dump在私有API中找到了这样的功能.那就是使用UIApplica ...
- linux 进程(二) --- 进程的创建及相关api
一.进程的创建fork()函数 由fork创建的新进程被称为子进程(child process).该函数被调用一次,但返回两次.两次返回的区别是子进程的返回值是0,而父进程的返回值则是 新子进程的进 ...
- AngularJs(三) deployd 服务的使用
使用服务建立数据 在AngularJS(二)中,我搭建好了deployd服务,现在启动服务,创建正在的数据(开始是使用模拟数据),使用cmd命令 一.开启Mongodb数据. 贴图: 二:测试是否正常 ...