Skip to content

[weixin-java-mp] WxMpOAuth2Service 为空接口,网页授权能力缺失 #4007

@binarywang

Description

@binarywang

问题描述

模块: weixin-java-mp
问题类型: 接口为空
严重程度: 🔴 High

WxMpOAuth2Service 接口存在但完全没有方法定义和实现

weixin-java-mp/src/main/java/me/chanjar/weixin/mp/api/WxMpOAuth2Service.java

该文件仅包含package声明和import语句,接口体内为空白,OAuth2网页授权是服务号的核心能力之一,文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

官方API(全部缺失)

接口路径 描述 状态
sns/oauth2/access_token 换取用户授权凭证(access_token)
sns/oauth2/refresh_token 刷新access_token
sns/oauth2/userinfo 获取用户基本信息
sns/auth 校验access_token是否有效

影响场景

  • 无法实现服务号网页授权扫码登录
  • 无法获取用户授权后的个人信息
  • 无法配合JS-SDK完成网页端微信认证
  • 开发者只能绕过SDK自行构造OAuth2流程

建议修复

WxMpOAuth2Service 中实现以下核心方法:

public interface WxMpOAuth2Service {
    /**
     * 构建网页授权URL
     * @param redirectUri 回调URI
     * @param scope 作用域(snsapi_base / snsapi_userinfo)
     * @param state 随机参数
     */
    String buildAuthorizationUrl(String redirectUri, String scope, String state);

    /**
     * 通过code换取access_token
     */
    WxMpOAuth2AccessToken getAccessToken(String code) throws WxErrorException;

    /**
     * 刷新access_token
     */
    WxMpOAuth2AccessToken refreshAccessToken(String refreshToken) throws WxErrorException;

    /**
     * 获取用户信息(需scope为snsapi_userinfo)
     */
    WxMpUser getUserInfo(String accessToken, String openid, String lang) throws WxErrorException;

    /**
     * 校验access_token是否有效
     */
    boolean validateAccessToken(String accessToken, String openid) throws WxErrorException;
}

环境信息

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions