Jfinal-weixin项目中关于第三方授权的问题。

Hi @JFinal 好久不见。 

JFinal-weixin中,我看源码的时候在ApiConfig.java中

public String getAppSecret() {
    if (appSecret == null)
        throw new IllegalStateException("appSecret 未被赋值");
    return appSecret;
}

追踪代码发现,在获取access_token过期后有个刷新

AccessTokenApi.java

AccessToken (ApiConfig ac) {
    AccessToken result = (ac)(result != ) {
        result}
    (ac)}
刷新时的代码如下:
AccessToken (ApiConfig ac) {
    String appId = ac.getAppId()String appSecret = ac.getAppSecret()Map<StringString> queryParas = ParaMap.(appId).put(appSecret).getData()AccessToken result = RetryUtils.(Callable<AccessToken>() {

        AccessToken () Exception {
            String json = HttpUtils.()AccessToken(json)}
    })(!= result) {
        IAccessTokenCache accessTokenCache = ApiConfigKit.()accessTokenCache.set(ac.getAppId()result.getCacheJson())}
    result}

但是,我们采用了第三方授权,获取不到secret的。所以是不是这一套不适合。如果需要修改的话,可以重写此类,将获取access_token的方式变更为第三方授权的方式:

String url = + componentAccessTokenJSONObject jsonObj = JSONObject()jsonObj.put()jsonObj.put(authorizerAppid)jsonObj.put(authorizerRefreshToken)
String jsonString  = HttpUtils.(urljsonObj)JSON.(jsonString)


评论区

JFinal

2018-09-06 16:29

代码有缺失在个人空间改一下这个贴子:
http://www.jfinal.com/my/feedback

改的时候注意看一下有一个 "代码语言" 的下拉框,选择 Java 语言再输入代码即可

IvyHelen

2018-09-07 08:56

@JFinal 已经完善了

热门反馈

扫码入社