微信网页授权方式详解

代码如下:

 1 var express = require(‘express‘);
 2 var cookieParser = require(‘cookie-parser‘);
 3 var bodyParser = require(‘body-parser‘);
 4 var OAuth = require(‘wechat-oauth‘);
 5 var request = require(‘request‘);
 6 var app = express();
 7 app.use(bodyParser.json());
 8 app.use(bodyParser.urlencoded({ extended: false }));
 9 app.use(cookieParser());
10 var port = 18080;
11 var appid = ‘wx75340481908402a8‘;
12 var appsecret = ‘2b6ee0cbeec0114eb539e68ba356329b‘;
13
14 //首先拼接url
15 var  url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx75340481908402a8&redirect_uri=http%3a%2f%2fwechatapp1.duapp.com%2fcallback&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"
16 app.get(‘/‘,function(req,res){
17     res.redirect(url);
18 });
19 //四步请求打法;
20 //第一步:获得code;
21 app.get(‘/callback‘,function(req,res){
22     var code  = req.query.code;
23     var url = ‘https://api.weixin.qq.com/sns/oauth2/access_token?appid=‘ + appid + ‘&secret=‘ + appsecret + ‘&code=‘ + code + ‘&grant_type=authorization_code‘;
24     //第二步:获得token
25     request.get(url,function(err,response,body) {
26         var json = JSON.parse(body);
27         var refreshUrl = ‘https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=‘ + appid + ‘&grant_type=refresh_token&refresh_token=‘ + json.refresh_token;
28         //第三步:获得refreshtoken和openId;
29         request.get(refreshUrl,function (err,response,refresh) {
30             var json = JSON.parse(refresh);
31             var infoUrl = ‘https://api.weixin.qq.com/sns/userinfo?access_token=‘ + json.access_token + ‘&openid=‘ + json.openid + ‘&lang=zh_CN‘;
32             //第四步:通过上一步刷新得来的refresh和openId请求用户信息;
33             request.get(infoUrl,function(err,response,info) {
34                 var info = JSON.parse(info);
35                 res.send(info);
36             });
37         });
38     });
39 });
40
41 app.listen(port);

微信授权登录页面的设置;分两步第一步拼接url,之后设置一个路由a,当用户点击路由a时,使用户跳转到拼接的路由;第二步,拼接的url里面会有一个回调路由,此路由回调回来时是带着参数的;通过里面的参数通过四步请求法,可以获得用户的信息;

用户信息分两种;一种是关注公众号的;一种是没有;关注公众号的会得到用户的全部信息,没有关注的只得到openid;两种信息里面都有一个相同字段;subscrib其值为0时没有关注,为1时关注;
时间: 2024-10-06 17:16:46

微信网页授权方式详解的相关文章

微信网页授权认证获取用户的详细信息,实现自动登陆-微信公众号开发干货

原创声明:本文为本人原创作品,绝非他处转账,转载请联系博主 从接触公众号到现在,开发维护了2个公众号,开发过程中遇到很多问题,现在把部分模块功能在这备案一下,做个总结也希望能给其他人帮助 工欲善其事,必先利其器,先看看开发公众号需要准备或了解什么 web开发工具:官方提供的开发工具,使用自己的微信号来调试微信网页授权.调试.检验页面的 JS-SDK 相关功能与权限,模拟大部分 SDK 的输入和输出.下载地址:web开发工具下载 开发文档:https://mp.weixin.qq.com/wiki

(转)OAuth 2.0授权协议详解和流程

这篇文章主要介绍了OAuth 2.0授权协议详解,本文对OAuth协议做了详解讲解,对OAuth协议的各个方面做了分解,读完本文你就会知道到底啥是OAuth了,需要的朋友可以参考下 OAuth是一个关于授权(authorization)的开放网络标准,在全世界得到广泛应用,目前的版本是2.0版.本文对OAuth 2.0的设计思路和运行流程,做一个简明通俗的解释,主要参考材料为RFC 6749. 一.应用场景 为了理解OAuth的适用场合,让我举一个假设的例子.有一个"云冲印"的网站,可

微信网页授权验证

首先今天是2016的第一天,但是有思想的东西不管在何时都要和大家分享,这里首先预祝大家新年快乐!新的一年快快升职加薪. 今天主要是最近一直困扰我的一个问题的思路讲解 ,微信网页授权验证这个一直困扰我,以为很多网上的图解和别人的讲解没有达到自己想要的答案. 所以总是不在一条思路上,最后真的是没有办法了,理解不了,那么就只能实践 了: 下面是这个思路:(上面废话多了一些有需要一起讨论学习,共享源码的请加QQ群:216390234) 微信API上分为5个步骤 主要的是在第一步,我很不明白为什么那个授权

微信开发(八)微信网页授权( Oauth )通过Oauth获取用户信息

div#cpmenu {height:200px;float:left;} div#cpcontent {height:200px;width:150px;float:left;} 文章作者:松阳 原文链接:http://blog.csdn.net/fansongy/article/details/45340951 网页授权 微信开发时,我们总是想要尽可能多的活动用户的信息.但微信官方和用户本身,又不想暴露这些信息.搞来搞去,就出现了很多奇形怪状的规则和交互方式.微信网页授权就是其中之一,它可以

免费的HTML5连载来了《HTML5网页开发实例详解》连载(三)DOCTYPE和字符集

在2.1.2节中通过新老DOCTYPE的对比,读者可以清晰地看到HTML 5在精简旧有结构上做出的努力.DOCTYPE在出现之初主要用于XML中,用作描述XML允许使用的元素.属性和排列方式.起初HTML借鉴了XML中DOCTYPE的使用方法,并赋予了新用法,如大家熟知的触发浏览器的标准模式.假使在制作一张页面时,没有设定DOCTYPE,则浏览器会以怪异模式状态进行处理(即Quirks模式),该模式与标准模式在盒模型.样式.布局等都存在较大差异.因此,DOCTYPE在制作页面时是不可或缺的部分.

免费的HTML5连载来了《HTML5网页开发实例详解》连载(六)媒体查询

响应式设计的另一个重要技术手段是媒体查询.如果只是简单的设计一个流式布局系统,那么可以保证每个网格按比例的放大和缩小,但有可能会使得在小屏幕下(如手机设备)网格太小而严重影响阅读,这样的设计称不上响应式设计.媒体查询可以来解决这一问题.媒体查询可以为特定的浏览器和设备提供特定的样式.媒体查询是CSS 3的一个新特性,是对媒体类型的扩展. 提示:W3C列出了10种媒体类型,请参考http://www.w3.org/TR/CSS2/media.html#media-types. 在响应式设计中,媒体

iOS企业证书网页分发全过程详解(图文并茂史无前例的详细哦)

iOS企业证书网页分发全过程详解 苹果的企业级证书发布的应用,是不用设备授权即可直接安装,并且不限设备上限.为了方便分发,苹果有协议实现通过网页链接直接下载安装企业级的应用. 首先需要说明它的原理:基本的原理就是在生成企业证书授权的ipa的同时,要生成一个对应的plist文件,plist文件中会配置ipa的下载地址.版本信息.Bundle ID 等信息,通过网页下载的时候其实下载的是这个plist文件,然后苹果通过自己的协议根据plist文件的配置信息去自动的下载安装app. 这里有个地址用来生

微信网页授权流程(前端篇)

功能描述 公司最近有个项目要做基于微信的H5校服定制wepApp的开发,之前完全没有接触过微信开发,很是兴奋,有种磨刀霍霍向猪羊的感觉.由于本人经验有项,描述不准确的地方请大家及时指出. 功能描述:当用户点击如下所示的图片获取用户的信息,包括openid,头像等. 准备工作 (1)在公众号后台"设置-公众号设置-功能设置-网页授权域名"设置回调的域名. (2)在对应位置按照公众号开发文档给出的规则设置回调地址. 如果是通过子菜单触发跳转,记得在"功能-自定义菜单-子菜单内容&

手把手实现微信网页授权和微信支付,附源代码(VUE and thinkPHP)

wechat github 概述 公众号开发是痛苦的,痛苦在好多问题开发者文档是没有提到的,是需要你猜的. 在开发过程中翻了好多的文档,都是说明其中的一部分问题的,很费时间,所以在此总结大体过程.我们模拟的是一个支付的商城,在实现购买过程中基本是把微信公众号最主要模块实现了,其余的功能我们没有涉及,但应该是触类旁通的. 我们叙述的过程是按开发流程进行叙述的,不会是按照开发文档的形式叙述,希望您能结合微信的开发文档一起阅读,当然在流程中我们会提醒你阅读的部分 目录 概述 [解决的问题] [前端技术