您好,欢迎来到华拓科技网。
搜索
您的当前位置:首页企业微信中第三方应用:用户授权登录

企业微信中第三方应用:用户授权登录

来源:华拓科技网
企业微信中第三⽅应⽤:⽤户授权登录

只做授权登录的话,直接看⾝份验证模块扫码授权登录就可以了1。构建授权url

@ApiOperation(\"构造⽹页授权链接\")

@ApiImplicitParams({@ApiImplicitParam(name = \"state\⽤于企业或服务商⾃⾏校验session\ @ApiImplicitParam(name = \"redirectUri\授权登录之后⽬的跳转⽹址\@GetMapping(\"/auth/qywxUrl\")

public Result makeUrl(@RequestParam(value = \"state\") String state,@RequestParam(value = \"redirectUri\ String qywxAuthUrl = thirdAuth.getQywxAuthUrl(corpID, redirectUri, state); return Result.success(qywxAuthUrl);}

public String getQywxAuthUrl(String appid,String redirectUri, String state){ String qywxAuthUrl = \"\"; try {

// redirect_uri需要经过⼀次urlencode作为参数

String redirectUri_encode = java.net.URLEncoder.encode(redirectUri, \"UTF-8\");

qywxAuthUrl = \"https://open.work.weixin.qq.com/wwopen/sso/3rd_qrConnect?appid=\"+appid+\"&redirect_uri=\"+redirectUri_encode+\"&state=\"+state+\"&usertype=member\"; } catch (UnsupportedEncodingException e) { e.printStackTrace(); }

return qywxAuthUrl;}

必须在指定域名下请求这个url ,然后拿到auth_code2。获取登录⽤户信息先获取服务商凭证

/**

* 获取服务商凭证 */

public String getProviderToken(String corpid,String providerSecret) { String providerToken = null;

if (StringUtils.isNotEmpty(corpid) && StringUtils.isNotEmpty(providerSecret)) { String url = \"https://qyapi.weixin.qq.com/cgi-bin/service/get_provider_token\"; JSONObject parma = new JSONObject(); parma.put(\"corpid\

parma.put(\"provider_secret\

String str = restTemplate.postForObject(url, parma.toString(), String.class); JSONObject response = JSONObject.parseObject(str); if (response.containsKey(\"provider_access_token\")) {

providerToken = response.getString(\"provider_access_token\"); } }

return providerToken;}

//获取登录⽤户信息

public String getUserInfo(String accessToken,String authCode) { String userInfo = null;

if (StringUtils.isNotEmpty(accessToken) && StringUtils.isNotEmpty(authCode)) {

String url = \"https://qyapi.weixin.qq.com/cgi-bin/service/get_login_info?access_token=\" + accessToken; JSONObject parma = new JSONObject(); parma.put(\"auth_code\

String str = restTemplate.postForObject(url, parma.toString(), String.class); JSONObject response = JSONObject.parseObject(str); if (response.containsKey(\"user_info\")) {

userInfo = response.getString(\"user_info\"); } }

return userInfo; }

   先扫码绑定⽤户信息 再登录校验⽤户信息

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo6.cn 版权所有 赣ICP备2024042791号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务