微信扫描二维码登录第三方平台

嗯。。。。。。

最近做了一个微信扫码登陆第三方平台功能,说下步骤就行,反正原理你们网上直接百度,我这里写了,估计也没几个人有耐心看

第一步 生成一个链接  

https://open.weixin.qq.com/connect/qrconnect?appid=xxxxxxxxf&redirect_uri=xxxxxxxxxxxx&response_type=code&scope=snsapi_login&state=#wechat_redirect

访问这个链接的时候,就会返回一张二维码 xxxxx地方是参数,,appid需要你开通微信开放平台,开通之后就会有,还有一个secret,,这2个都需要,这里需要注意,微信还有一个公众平台也有这2个参数,他们是不一样的。你开发的时候要区分是开放平台还是公众平台,不要掉进坑里 ,redirect_uri=这个是说,你扫描二维码之后,要跳转的地址,这里跳转回带上code和state 2个参数,所以你编写的时候需要这样



@RequestMapping(value = "/code", params = { "code", "state" }, method = RequestMethod.GET)
@ResponseBody
public Object getAuth(HttpServletRequest request, @RequestParam String code, @RequestParam String state)
throws JSONException {

         ///这里第一步,首先需要通过appid,secret ,code 去获取token 

                https://api.weixin.qq.com/sns/oauth2/access_token?appid=" + APPID + "&secret="
      + SECRET + "&code=" + code + "&grant_type=authorization_code";//获取token的地址,

这里我使用的是 apache下的httpclient


DefaultHttpClient client = new DefaultHttpClient();


try {


   HttpGet getRequest = new HttpGet(access_token_url);
   HttpResponse response = client.execute(getRequest);


   if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
      String strResult = EntityUtils.toString(response.getEntity());


      logger.info("-------jsonResult-------" + strResult);


      JSONObject jsonResult = new JSONObject(strResult);


   
if (jsonResult.has("unionid")){
   unionid= (String) jsonResult.get("unionid");
}

这个参数非常的重要,但是我也懒得讲了,你们自己百度吧,就是要记住一点,这个参数是唯一的,

}

然后经过你后台的鉴权通过之后,跳转,至于鉴权方式,就看你自己额

你可以通过 unionid 去数据库寻找用户,,智力需要说明,,unionid是之前就获取到了用户的,然后初始化到数据库了得,至于怎么查找unionid,需要通过openid


https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN。这个是获取unionid 的,至于这个openid,你获取token 的时候,就会有的,反正你写个脚本,把他们保存数据库,当作初始化,

if (SecurityUtils.getSubject().isAuthenticated()) {
logger.info("  二维码登录成功       :   " + openid);
   logger.info("  二维码登录成功  username     :   " + (String) SecurityUtils.getSubject().getPrincipal());
return new ModelAndView("redirect:x'x'x'x'x'x'x'x'x");
}

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
当使用Vue 3和Koa实现第三方登录,比如微信扫码,你可以按照以下步骤进行操作: 1. 创建一个Vue 3项目,可以使用Vue CLI来初始化项目结构。 2. 在Vue项目中安装需要的依赖,包括axios用于发送HTTP请求、vue-router用于路由管理等。 3. 创建一个登录页面,包括一个扫码按钮和一个显示扫码结果的区域。 4. 当用户点击扫码按钮时,前端将向后端发送请求,请求后端生成一个二维码并返回给前端。 5. 前端使用第三方库(如qrcode.js)将后端返回的二维码显示在页面上。 6. 前端通过轮询或WebSocket等方式向后端发送请求,检查用户是否已经扫码并获取到登录结果。 7. 后端接收到前端发送的请求后,调用微信开放平台的API生成一个登录二维码,并将二维码地址返回给前端。 8. 用户使用微信扫描二维码后,微信将用户信息发送给后端。 9. 后端接收到微信发送的用户信息后,进行验证,并生成一个登录凭证(如JWT)返回给前端。 10. 前端接收到登录凭证后,可以将凭证保存在本地(如localStorage)中,并跳转到其他页面。 11. 在后续请求中,前端可以将登录凭证添加到请求的Header中,后端通过验证凭证来判断用户的登录状态。 12. 后端在接收到带有登录凭证的请求时,可以解析凭证,获取用户信息,并进行相关业务处理。 这只是一个简单的实现方案,具体的实现细节可能会因为微信开放平台的API和业务需求而有所不同。你可以参考微信开放平台的文档和相关示例代码来完成具体的实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值