微信公众号中的网页授权
这个地址呢如果有域名 就填写你的 ,如果没有 就去本地hosts配置一下
C:\Windows\System32\drivers\etc 这个位置
127.0.0.1 www.tianjin.cn 配置成这个, 一定要一致
下面配上app.js的代码
const express = require('express')
const request = require('request')
const app = express()
var AppID = '';
var AppSecret = '';
app.get('/wechat_login', function(req,res, next){
// 第一步:用户同意授权,获取code
var router = 'get_wx_access_token';
// 这是编码后的地址 这里要修改成你本地的域名
var return_uri = 'http%3A%2F%2Fwww.tianjin.cn%2F'+router;
var scope = 'snsapi_userinfo';
res.redirect('https://open.weixin.qq.com/connect/oauth2/authorize?appid='+AppID+'&redirect_uri='+return_uri+'&response_type=code&scope='+scope+'&state=STATE#wechat_redirect');
});
app.get('/get_wx_access_token', function(req,res, next){
// 第二步:通过code换取网页授权access_token
var code = req.query.code;
request.get(
{
url:'https://api.weixin.qq.com/sns/oauth2/access_token?appid='+AppID+'&secret='+AppSecret+'&code='+code+'&grant_type=authorization_code',
},
function(error, response, body){
if(response.statusCode == 200){
// 第三步:拉取用户信息(需scope为 snsapi_userinfo)
//console.log(JSON.parse(body));
var data = JSON.parse(body);
var access_token = data.access_token;
var openid = data.openid;
request.get(
{
url:'https://api.weixin.qq.com/sns/userinfo?access_token='+access_token+'&openid='+openid+'&lang=zh_CN',
},
function(error, response, body){
if(response.statusCode == 200){
// 第四步:根据获取的用户信息进行对应操作
var userinfo = JSON.parse(body);
console.log(userinfo)
console.log('获取微信信息成功!');
//其实,到这就写完了,你应该拿到微信信息以后去干该干的事情,比如对比数据库该用户有没有关联过你们的数据库,如果没有就让用户关联....等等等...
// 小测试,实际应用中,可以由此创建一个帐户
res.send("\
<h1>"+userinfo.nickname+" 的个人信息</h1>\
<p><img src='"+userinfo.headimgurl+"' /></p>\
<p>"+userinfo.city+","+userinfo.province+","+userinfo.country+"</p>\
<p>openid: "+userinfo.openid+"</p>\
");
}else{
console.log(response.statusCode);
}
}
);
}else{
console.log(response.statusCode);
}
}
)
})
app.use(express.urlencoded({ extended: false }));
app.use(express.json());
app.listen(80,()=>console.log('http://localhost:80'))
之后去试试吧
www.tianjin.cn/wechat_logi… 在微信开发工具打开