日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

node 微信授权 获取openid

發布時間:2025/4/9 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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;// 第一步:用戶同意授權,獲取codevar Router = 'jy';// 這是編碼后的地址var return_uri = config.return_uri + Router;var scope = 'snsapi_base';// snsapi_userinfo可以獲取用戶信息與token與openid// snsapi_base只能獲取到token與openidres.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 } = ctxvar 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

總結

以上是生活随笔為你收集整理的node 微信授权 获取openid的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。