node 微信授权 获取openid

node获取微信授权拿到openid

需要了解的网站

  1.微信授权

先说一下流程(一张图代替所有):

流程步骤:

1.用户同意,获取code。

2.通过code获取网页授权access_token.

3.获取用户信息。

开始搞事情:

这是我的路由结构。

const Koa = require(‘koa‘)
const app = new Koa()
const path = require(‘path‘)
const route = require(‘koa-route‘);
const static = require(‘koa-static‘);
const keyBody = require(‘koa-body‘)

// routes
const { oauth } = require(‘./routes/accredit/oauth‘);
const { token } = require(‘./routes/accredit/token‘);
const rootPath = path.join(__dirname + ‘/View‘)
const _static = static(rootPath)
    // 中间件
const logger = async(ctx, next) => {
    const rt_start = Date.now()
    await next()
    const rt_end = Date.now()
    ctx.set(‘X-Response-Time‘, `${rt_end - rt_start}ms`);
    console.log(ctx.request.method, ctx.url, `${rt_end - rt_start}ms`)
}

app.use(_static) // 静态资源
app.use(keyBody()) // req body数据获取 (非参数序列化)
app.use(logger) // 日志

// page route
app.use(route.get(‘/oauth‘, oauth)); //授权
app.use(route.get(‘/token‘, token)); //获取openid

app.listen(8088, (err) => {
    if (err) { console.error(err) }
    console.log(‘Listening At:‘, 8088)
}

1.在APP中访问oauth获取code

var config = require(‘./../config‘);
var request = require(‘request‘);
/* 微信网页授权 */
const oauth = async(ctx, next) => {
    const { request: req, response: res } = ctx;             var AppID = config.AppID;
        var AppSecret = config.AppSecret;
        // 第一步:用户同意授权,获取code
        var Router = ‘jy‘;
        // 这是编码后的地址
        var return_uri = config.return_uri + Router;
        var scope = ‘snsapi_base‘;
        // snsapi_userinfo可以获取用户信息与token与openid
        // snsapi_base只能获取到token与openid
        res.redirect(‘https://open.weixin.qq.com/connect/oauth2/authorize?appid=‘ + AppID + ‘&redirect_uri=‘ + return_uri + ‘&response_type=code&scope=‘ + scope + ‘&state=123456#wechat_redirect‘);
}
module.exports = { oauth };

1.01(config.js)//写好配置参数

    (1):AppID,

    (2):AppSecret。

2.在客户端访问 tocken,tongguo code获取access_tocken

var config = require(‘./../config‘);
var request = require(‘request‘);
var axios = require(‘axios‘)
const token = async(ctx, next) => {
    const { request: req, response: res } = ctx
    var code = req.header.referer.match(new RegExp("[\?\&]" + ‘code‘ + "=([^\&]+)", "i"))[1];
    var AppID = config.AppID;
    var AppSecret = config.AppSecret;
    var result = await 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;
            } else {
                console.log(response.statusCode);
            }
        }
    );
    ctx.type = ‘json‘;
    ctx.body = result;
}

module.exports = { token }

因为我这里只需要获取到openid即可,所以在这里就已经返回result。

在这里再次感谢在人生路上帮助我的人!谢谢你们。

如果以上代码对您有用,欢迎打赏!如有错误的地方也请您留言指出。

      (支付宝)                  (微信)

原文地址:https://www.cnblogs.com/jimmy1293/p/8969057.html

时间: 2024-09-28 13:41:31

node 微信授权 获取openid的相关文章

java微信授权获取OPENID,ACCESS_TOKEN,用户信息

获取微信的openId流程 1.获取微信code 使用接口 : appId 是当前开发者的appId 不是用户的  path  是回调地址 这个链接是授权链接,当重定向这个链接的时候,会展示授权页,点击授权之后 跳入你path的请求接口    回调中带了一个参数code获取到就行 https://open.weixin.qq.com/connect/oauth2/authorize?appid="+appId+"&redirect_uri="+path+"&

微信授权获取用户的openid

用户同意授权获取code,通过php的curl 把access_token和openid给爬下来,再根据access_token和openid把微信用户的基本信息给爬下来其中json_decode()记得写true 不然返回的是对象不是数组 标签: <无> 代码片段(1)[全屏查看所有代码] 1. [代码][PHP]代码 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 3

微信授权获取code/openid

微信网页授权 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域名的说明 1.在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的“开发 - 接口权限 - 网页服务 - 网页帐号 - 网页授权获取用户基本信息”的配置选项中,修改授权回调域名.请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加 http:// 等协议头: 2.授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq

[转] Android进阶——安卓接入微信,获取OpenID

PS: sendAuthRequest拿到code,通过code拿到access_token和openId,access_token可以拿到用户的信息 http://blog.csdn.net/haovip123/article/details/50503176 需求:接入微信支付,需要获取 OpenID. 安卓接入微信指南:https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&

微信授权获取code

1 入口文件 (其中,jumpUrl为获取code后返回处理的页面) <script> import { getOpenID } from "../../utils/access.js"; export default{ data(){ return {}, }, methods:{ ... let jumpUrl = window.location.href.split("#")[0] + "#" + "/SaveUser

微信授权登录(PHP)

微信授权登录(PHP) 微信授权 OAuth2.0授权 微信网页授权 主要是在项目中遇到网页授权登录这个需求,就对此做些总结记录. OAuth2.0授权 OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站.移动或桌面应用上存储的个人信息,而无需将用户名和密码提供给第三方应用.常见微信.QQ登录,省去管理账户的麻烦,也不会造成用户的流失. 打开微信的官方文档,会看到网页授权一些说明.(有点摸不着头脑,主要是当时没能关联起来,微信文档每次看都那么郁闷!!!) 来了解

微信网页授权-公众号支付(获取openid、用户信息等)

名词解释: openid 用户唯一标识,请注意,在未关注公众号时,用户访问公众号的网页,也会产生一个用户和公众号唯一的OpenID 业务功能描述:实现H5页面可以在微信浏览器里面进行微信支付,所以需要使用微信公号支付功能才能实现, 微信公众号支付功能需要用户的openid,所以进入页面时需要通过网页授权首先获取到openid. 支付流程大致流程如下: 1,进入支付页面时,请求以下链接获取code appid 是 公众号的唯一标识 https://open.weixin.qq.com/connec

【微信】网页授权,获取CODE,OPENID,

修改微信授权回调域名 1.在微信公众号请求用户网页授权之前,开发者需要先到公众平台官网中的开发者中心页配置授权回调域名.请注意,这里填写的是域名(是一个字符串),而不是URL,因此请勿加http://等协议头: 授权回调域名配置规范为全域名 2.授权回调域名配置规范为全域名,比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.html .http://www.qq.com/login.html 都可以进行OAuth2.0鉴权.但

java 获取微信 页面授权 获取用户openid

先调用微信的地址 跳转https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx4b4009c4fce00e0c&redirect_uri=这里填写你要跳到请求页面授权域名l&response_type=code&scope=snsapi_base&state=123#wechat_redirect 返回redirect_uri/?code=""&status=""