(Translated by https://www.hiragana.jp/)
GitHub - CharLemAznable/varys: 分布式AccessToken中控服务器, 支持微信公众号/企业微信/小程序/第三方平台/头条开放平台/蜂鸟开放平台.
Skip to content

分布ぶんぷしきAccessTokenちゅうひかえふく务器, 支持しじほろしんこう众号/くわだて业微しん/しょうほどじょ/だいさんぽう平台ひらだい/头条开放平台ひらだい/はち鸟开放平台ひらだい.

License

Notifications You must be signed in to change notification settings

CharLemAznable/varys

Repository files navigation

varys

Build Status GitHub release (latest by date) MIT Licence GitHub code size

AccessToken ちゅうひかえふく务器

统一DBそん储AccessToken, 支持しじ分布ぶんぷ式部しきぶしょふく务访问和更新こうしん.

配置はいちぶんけん

config.toml しめせれい

Port = 4236
ContextPath = ""
LogLevel = "info"
ClusterNodeAddresses = [ "http://localhost:4236" ]

DriverName = "mysql"
DataSourceName = "admin:test123@tcp(127.0.0.1:3306)/rock?charset=utf8"

部署ぶしょ执行

  1. しも最新さいしんてき行文こうぶんけん压缩つつみ并解压

    しも载地: varys release

$ tar -xvJf varys-[version].[arch].[os].tar.xz
  1. 新建しんたけ/编辑配置はいちぶんけん, 启动运行
$ nohup ./varys-[version].[arch].[os].bin &

かずすえ

けんひょうSQL:

varys.sql

本地ほんじ缓存

包含ほうがんほろしんこう众号/しょうほどじょ配置はいち缓存access_token缓存, 其中:

  1. おおやけ众号/しょうほどじょ配置はいち缓存だま认1しょう
  2. access_token缓存だま认5ふん钟, とうaccess_tokenそくはた过期并被其他分布ぶんぷしき节点更新こうしん时缓そん1ふん

wechat_app_token_cache.go

包含ほうがんほろしんじだい三方平台配置缓存和报文解密器缓存, 其中

  1. だい三方平台配置缓存默认1しょう
  2. だい三方平台报文解密器缓存默认1しょう

包含ほうがんほろしんじだいさんぽう平台ひらだいcomponent_access_token/授权ようauthorizer_access_token缓存, 其中

  1. component_access_token缓存だま认5ふん钟, とうcomponent_access_tokenそくはた过期并被其他分布ぶんぷしき节点更新こうしん时缓そん1ふん
  2. authorizer_access_token缓存だま认5ふん钟, とうauthorizer_access_tokenそくはた过期并被其他分布ぶんぷしき节点更新こうしん时缓そん1ふん

wechat_tp_token_cache.go wechat_tp_auth_token_cache.go

包含ほうがんくわだて业微しん配置はいち缓存access_token缓存, 其中:

  1. くわだて业微しん配置はいち缓存だま认1しょう
  2. access_token缓存最大さいだい5ふん钟, とうaccess_tokenそくはた过期时, 缓存时间最大さいだいいたり有效ゆうこう结束

wechat_corp_token_cache.go

包含ほうがんくわだて业微しんじだい三方应用配置缓存和报文解密器缓存, 其中

  1. くわだて业微しんじだい三方应用配置缓存默认1しょう
  2. くわだて业微しんじだい三方应用报文解密器缓存默认1しょう

包含ほうがんくわだて业微しんじだいさんぽう应用suite_access_token/access_token缓存, 其中

  1. suite_access_token缓存最大さいだい5ふん钟, とうsuite_access_tokenそくはた过期时, 缓存时间最大さいだいいたり有效ゆうこう结束
  2. access_token缓存最大さいだい5ふん钟, とうaccess_tokenそくはた过期时, 缓存时间最大さいだいいたり有效ゆうこう结束

wechat_corp_tp_token_cache.go wechat_corp_tp_auth_token_cache.go

包含ほうがん节小ほどじょ配置はいち缓存access_token缓存, 其中:

  1. しょうほどじょ配置はいち缓存だま认1しょう
  2. access_token缓存だま认5ふん钟, とうaccess_tokenそくはた过期并被其他分布ぶんぷしき节点更新こうしん时缓そん1ふん

toutiao_app_token_cache.go

包含ほうがんはち鸟应よう配置はいち缓存授权しょうaccess_token缓存,其中:

  1. 应用配置はいち缓存だま认1しょう
  2. しょう户access_token缓存だま认8ふん

fengniao_app_token_cache.go

包含ほうがん闪送应用配置はいち缓存授权しょうaccess_token缓存,其中:

  1. 应用配置はいち缓存だま认1しょう
  2. しょう户access_token缓存だま认5ふん

shansong_app_token_cache.go

访问みち

だま认服务地:

http://localhost:4236

ほろしんこう众号/しょうほどじょ:

/query-wechat-app-token/{codeName:string}

获取指定していcodeName对应てきおおやけ众号/しょうほどじょとうまえてきaccess_tokenjsapi_ticket
かえし回数かいすうすえ:
成功せいこう: {"appId": #appId#, "token": #access_token#, "ticket": #jsapi_ticket#}
错误: {"error": #ErrorMessage#}
/proxy-wechat-app/{codeName:string}/...

代理だいり指定していcodeName对应てきおおやけ众号/しょうほどじょほろしんせっこう, 添加てんかaccess_tokenさんすう
/proxy-wechat-app-mp-login/{codeName:string}?js_code=JSCODE

代理だいり指定していcodeName对应てきしょうほどじょとう录凭证校验

つう过 wx.login せっこう获得临时とう录凭证 code きさき调用此接こう,获取ほろしん提供ていきょうてきよう户身份标识

详见: ほろしん开放ぶん档 auth.code2Session

/query-wechat-app-js-config/{codeName:string}?url=URL

获取指定していcodeName对应てきおおやけ众号使用しようJS-SDKてき注入ちゅうにゅう配置はいちしんいき
かえし回数かいすうすえ:
成功せいこう: {"appId": #appId#, "timestamp": #timestamp#, "nonceStr": #nonceStr#, "signature": #signature#}
错误: {"error": #ErrorMessage#}

详见: ほろしん开放ぶん档 JS-SDK说明ぶんどおり过configせっこう注入ちゅうにゅう权限验证配置はいち

ほろしんじだいさんぽう平台ひらだい:

/accept-wechat-tp-info/{codeName:string}

だい三方平台在微信配置的授权事件接收URL
よう接收せっしゅうcomponent_verify_ticket以及こう众号对第三方平台进行授权、取消とりけし授权、更新こうしん授权てき推送通知つうち,以及快速かいそく创建しょうほどじょてき审核结果通知つうち
かえし回数かいすうすえ: "success"
/accept-wechat-tp-msg/{codeName:string}

だい三方平台在微信配置的消息与事件接收URL
よう于代收用しゅうよう户发送给公众号/しょうほどじょてき消息しょうそく,以及しょうほどじょ改名かいめいてき审核结果通知つうち
かえし回数かいすうすえ: "success"
/query-wechat-tp-token/{codeName:string}

获取指定していcodeName对应てきだいさんぽう平台ひらだいとうまえてきcomponent_access_token
かえし回数かいすうすえ:
成功せいこう: {"appId": #appId#, "token": #component_access_token#}
错误: {"error": #ErrorMessage#}
/proxy-wechat-tp/{codeName:string}/...

代理だいり指定していcodeName对应てきだい三方平台微信接口, 添加てんかcomponent_access_tokenさんすう

ほろしんじだいさんぽう平台ひらだい授权かた:

/wechat-tp-authorize-scan/{codeName:string}

だい三方平台扫码授权入口页面, とべ转到ほろしんてき扫码授权页面
よう于引导公众号しょうほどじょ管理かんり员向だいさんぽう平台ひらだい授权
とべ转页めん:
https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=#appId#&pre_auth_code=#pre_auth_code#&redirect_uri=#url_to_/app-authorize-redirect/{codeName:string}#
/wechat-tp-authorize-link/{codeName:string}

だい三方平台移动端链接授权入口页面, とべ转到ほろしんてき链接授权页面
よう于引导公众号しょうほどじょ管理かんり员向だいさんぽう平台ひらだい授权
とべ转页めん:
https://mp.weixin.qq.com/safe/bindcomponent?action=bindcomponent&no_scan=1&component_appid=#appId#&pre_auth_code=#pre_auth_code#&redirect_uri=#url_to_/app-authorize-redirect/{codeName:string}##wechat_redirect
/wechat-tp-authorize-redirect/{codeName:string}

だい三方平台授权回调地址
とべ转页めん:
如果だいさんぽう平台ひらだい配置はいちりょうWECHAT_APP_THIRD_PLATFORM_CONFIG.REDIRECT_URL, 则跳转到此地
/query-wechat-tp-auth-token/{codeName:string}/{authorizerAppId:string}

获取指定していcodeName对应てきだいさんぽう平台ひらだいしょ代理だいりてきauthorizerAppId对应てきおおやけ众号とうまえてきauthorizer_access_tokenjsapi_ticket
かえし回数かいすうすえ:
成功せいこう: {"appId": #appId#, "authorizerAppId": #authorizerAppId#, "token": #authorizer_access_token#, "ticket": #jsapi_ticket#}
错误: {"error": #ErrorMessage#}
/proxy-wechat-tp-auth/{codeName:string}/{authorizerAppId:string}/...

代理だいり指定していcodeName对应てきだいさんぽう平台ひらだいしょ代理だいりてきauthorizerAppId对应てきおおやけ众号/しょうほどじょほろしんせっこう, 添加てんかaccess_tokenさんすう
/proxy-wechat-tp-auth-mp-login/{codeName:string}/{authorizerAppId:string}?js_code=JSCODE

代理だいり指定していcodeName对应てきだいさんぽう平台ひらだいしょ代理だいりてきauthorizerAppId对应てきしょうほどじょとう录凭证校验

つう过 wx.login せっこう获得临时とう录凭证 code きさき调用此接こう,获取ほろしん提供ていきょうてきよう户身份标识

详见: ほろしん开放ぶんだい三方平台代小程序实现业务 ほろしんとう

/query-wechat-tp-auth-js-config/{codeName:string}/{authorizerAppId:string}?url=URL

获取指定していcodeName对应てきだいさんぽう平台ひらだいしょ代理だいりてきauthorizerAppId对应てきおおやけ众号使用しようJS-SDKてき注入ちゅうにゅう配置はいちしんいき
かえし回数かいすうすえ:
成功せいこう: {"appId": #appId#, "timestamp": #timestamp#, "nonceStr": #nonceStr#, "signature": #signature#}
错误: {"error": #ErrorMessage#}

详见: ほろしん开放ぶん档 JS-SDK说明ぶんどおり过configせっこう注入ちゅうにゅう权限验证配置はいち 详见: ほろしん开放ぶんだい三方平台代公众号实现业务 だいおおやけ众号使用しようJS-SDK说明

くわだて业微しん:

/query-wechat-corp-token/{codeName:string}

获取指定していcodeName对应てきくわだて业微しんじとうまえてきaccess_token
かえし回数かいすうすえ:
成功せいこう: {"corpId": #corpId#, "token": #access_token#}
错误: {"error": #ErrorMessage#}
/proxy-wechat-corp/{codeName:string}/...

代理だいり指定していcodeName对应てきくわだて业微しんせっこう, 添加てんかaccess_tokenさんすう

くわだて业微しんじだいさんぽう平台ひらだい:

/accept-wechat-corp-tp-info/{codeName:string}

くわだて业第三方应用在微信配置的授权事件接收URL
よう接收せっしゅうsuite_ticket以及くわだて业微しん对第三方应用进行授权、取消とりけし授权、更新こうしん授权てき推送通知つうち
かえし回数かいすうすえ: "success"

くわだて业微しんじだいさんぽう平台ひらだい授权かた:

/wechat-corp-tp-authorize-component/{codeName:string}?state={state:string}

くわだて业第三方应用授权入口页面, とべ转到ほろしんてき授权页面
よう于引导企业微しん管理かんり员向だいさんぽう应用授权
とべ转页めん:
https://open.work.weixin.qq.com/3rdapp/install?suite_id=#suiteId#&pre_auth_code=#pre_auth_code#&redirect_uri=#url_to_/corp-authorize-redirect/{codeName:string}#&state=#state#
/wechat-corp-tp-authorize-redirect/{codeName:string}

くわだて业第三方应用授权回调地址
とべ转页めん:
如果だいさんぽう平台ひらだい配置はいちりょうWECHAT_CORP_THIRD_PLATFORM_CONFIG.REDIRECT_URL, 则跳转到此地
/query-wechat-corp-tp-auth-token/{codeName:string}/{corpId:string}

获取指定していcodeName对应てきくわだて业第三方应用所代理的corpId对应てきくわだて业微しんじとうまえてきaccess_token
かえし回数かいすうすえ:
成功せいこう: {"suiteId": #suiteId#, "corpId": #corpId#, "token": #access_token#}
错误: {"error": #ErrorMessage#}

头条APP:

/query-toutiao-app-token/{codeName:string}

获取指定していcodeName对应てき节小ほどじょとうまえてきaccess_token
かえし回数かいすうすえ:
成功せいこう: {"appId": #appId#, "token": #access_token#}
错误: {"error": #ErrorMessage#}

はち鸟:

/fengniao-app-auth/{codeName:string}

はち鸟应よう授权入口いりくち页面, とべ转到はち鸟的授权页面
よう于引导商户向应用授权
とべ转页めん:
https://open.ele.me/app-auth?app_id=#AppId##&dev_id=#DevId#
/fengniao-app-auth-callback/{codeName:string}

配置はいちはち鸟商户授权回调地: 开发しゃ中心ちゅうしん -> 应用管理かんり -> 查看应用详情
授权完成かんせいきさき, はた授权しょう户的merchantId以authNotify类型かい调至はち鸟应よう配置はいちfengniao_app_config.callback_url(POST JSON)
/query-fengniao-app-token/{codeName:string}/{merchantId:string}

获取指定していcodeName对应てきはち鸟应よう获取授权てきしょう户当まえてきaccess_token
かえし回数かいすうすえ:
成功せいこう: {"appId": #appId#, "merchantId": #merchantId#, "token": #accessToken#}
错误: {"error": #ErrorMessage#}
/proxy-fengniao-app/{codeName:string}/{merchantId:string}/...

代理だいり指定していcodeName对应てきはち鸟应よう获取授权てきしょう户接こう, 包装ほうそうげん请求たい为business_data并签めい
/fengniao-app-callback/{codeName:string}

配置はいちはち鸟应よう消息しょうそく推送かい调地: 开发しゃ中心ちゅうしん -> 应用管理かんり -> 查看应用详情 -> 编辑
验证はち鸟回调消いき签名, 并将かい调请もとめちゅうてきbusiness_dataひっさげ转发到はち鸟应よう配置はいちfengniao_app_config.callback_url(POST JSON)

闪送:

/shansong-app-auth/{codeName:string}/{merchantCode:string}

闪送应用授权入口いりくち页面, とべ转到闪送てき授权页面
よう于引导商户向应用授权
merchantCodeしょうさく为state值传递, 并作为varysてきしょう户标识
とべ转页めん:
http://open.ishansong.com/auth?response_type=code&client_id=#AppId#&scope=shop_open_api&redirect_uri=#url_to_/shansong-app-auth-redirect/{codeName:string}#&state=#MerchantCode#
/shansong-app-auth-redirect/{codeName:string}

闪送应用授权かい调地
とべ转页めん:
如果だいさんぽう平台ひらだい配置はいちりょうshansong_app_config.redirect_url, 则跳转到此地
/query-shansong-app-token/{codeName:string}/{merchantCode:string}

获取指定していcodeName对应てき闪送应用获取授权てきしょう户当まえてきaccess_token
かえし回数かいすうすえ:
成功せいこう: {"appId": #appId#, "merchantCode": #merchantCode#, "token": #accessToken#}
错误: {"error": #ErrorMessage#}
/proxy-shansong-app-developer/{codeName:string}/{merchantCode:string}/...

代理だいり指定していcodeName对应てき闪送应用获取授权てきしょう户接こう, 包装ほうそうげん请求たい为data并签めい
代理だいり指向しこうhttp://open.ishansong.com/openapi/developer/v5/したてきせっこう
/proxy-shansong-app-merchant/{codeName:string}/...

代理だいり指定していcodeName对应てき闪送应用せっこう, 包装ほうそうげん请求たい为data并签めい
代理だいり指向しこうhttp://open.ishansong.com/openapi/merchantRegister/v5/したてきせっこう
/proxy-shansong-app-file/{codeName:string}/...

代理だいり指定していcodeName对应てき闪送应用せっこう, 包装ほうそうげん请求たい(うえ传文けん)为file并签めい
代理だいり指向しこうhttp://open.ishansong.com/openapi/file/v5/したてきせっこう
/shansong-app-callback/{codeName:string}

配置はいち闪送应用订单じょう通知つうちせっこう: 账户しんいき -> おさむあらため线上notifyUrl
はたかい调请もとめとおる传转发到闪送应用配置はいちshansong_app_config.callback_url(POST JSON), 并向闪送平台ひらだいかえしかいstatus=200

Golang Kits

varys-go-driver

Java Kits

varys-java-driver

About

分布ぶんぷしきAccessTokenちゅうひかえふく务器, 支持しじほろしんこう众号/くわだて业微しん/しょうほどじょ/だいさんぽう平台ひらだい/头条开放平台ひらだい/はち鸟开放平台ひらだい.

Resources

License

Stars

Watchers

Forks

Packages

No packages published