企业微信应用授权/静默登录
原创
©著作权归作者所有:来自51CTO博客作者HezhezhiyuLe的原创作品,请联系作者获取转载授权,否则将追究法律责任
前言
企微创建一个新应用,用户点击静默授权登录
企业微信API
操作
这边不按部就班,使用一次性访问
创建一个链接
标准链接
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
赋值
https://open.weixin.qq.com/connect/oauth2/authorize?appid=A&redirect_uri=B&response_type=code&scope=snsapi_base&agentid=C&state=D
- A appid 填写对应参数
- B 回调链接 获取code 需要URLEncoder转码 下文有
- C agentid 填写对应参数
- D 微信重定向后携带的参数(建议写前端地址或者其他)
注意:拼接完成的链接需要配置在企微对应主页地址
注意:B位置的重定向链接需要在企微应用中配置可信任域名,未配置会在code获取时报50001
错误码:50001
重定向链接
上述链接配置好后回调地址,code置换微信用户
/**
* 微信用户登录获取用户
*
* @param code 回调
* @param state
* @param request
* @return
* @throws IOException
*/
@GetMapping("oauth2me.do")
@ApiOperation(value = "回调方法")
public RedirectView getuserinfo(@RequestParam String code, @RequestParam String state, HttpServletRequest request) throws IOException {
System.out.println("回调方法code: " + code + "state: " + state);
BaseResult getuserinfo = weChatServicel.getuserinfo(code, request);
String redirectUrl = "";
if (getuserinfo.getErrno() == 200) {
Object o = JSONArray.toJSON(data);
String s = Base64Util.encryptBASE64(o.toString());
String encode = URLEncoder.encode(s, "UTF-8");
redirectUrl = state + "?" + encode;
} else {
redirectUrl = state;
}
System.out.println("重定向URL: " + redirectUrl);
return new RedirectView(redirectUrl);
}
获取访问用户身份
方法体内部调用这个请求就行
请求方式:GET(HTTPS)
请求地址:https://qyapi.weixin.qq.com/cgi-bin/service/getuserinfo3rd?suite_access_token=SUITE_ACCESS_TOKEN&code=CODE
返回值
{
"errcode": 0,
"errmsg": "ok",
"CorpId":"CORPID",
"UserId":"USERID",
"DeviceId":"DEVICEID",
"user_ticket": "USER_TICKET",
"expires_in":7200,
"open_userid":"wwxxxx"
}
参考链接:获取访问用户身份