企业微信扫码登录功能 :前后端分离项目

1 前期准备工作

  1. 获取企业相关信息: 企业ID   ,AgentId  ,企业Secret    
  2. 网页授权的可信域名配置 :应用管里-> 开发者接口-> 网页授权及JS-SDK  例子:lx.com,并将该可信域名nginx反向代理
  3. 配置企业可信ip   
  4. 接口文档:开始开发 - 接口文档 - 企业微信开发者中心

2 对接企业微信扫码登录(OAuth2授权登录)前后端分离项目

1. 后端构建前端需重定向的 redirect_uri

例子:可信域名/login?action=get&code=CODE

2. 前端在用户扫码之后跳转OAuth2链接

https://open.weixin.qq.com/connect/oauth2/authorize?appid=CORPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE&agentid=AGENTID#wechat_redirect

需注意 因需要获取用户敏感信息 -> 设置 scope=snsapi_privateinfo

3.获取用户code并请求到后端
4. 根据企业ID和凭证密钥 调用接口凭证接口 ,获取access_token(建议将access_token存入redis 缓存,并将失效时间设置为1小时)

5. 根据access_token及用户code获取访问用户身份 user_ticket

6.根据access_token及 user_ticket 获取访问用户敏感信息

7. 根据用户信息比对我们系统用户信息

 存在则创建token,并重定向将token返回给前端


 String token = TokenUtil.encryptTenantToken(userId);
 String key = Constants.USER_KEY + tenantUser.getId();
 redisClient.set(key, token, Constants.TOKEN_EXPIRE);
// 发送重定向响应:
 StringBuilder url = new StringBuilder();
 url.append("/redaviator/r?").append("token=").append(token);
 String redirectToUrl = url.toString();
 resp.sendRedirect(redirectToUrl);

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现微信扫码登录前后端分离流程如下: 1. 前端生成登录二维码:前端页面加载时,向后端发送请求获取登录二维码的参数信息,包括appid和redirect_uri等,后端根据这些参数生成登录二维码的URL,并返回给前端。 2. 前端展示二维码:前端使用第三方库(如qrcode.js)将生成的登录二维码展示给用户。 3. 用户扫码确认登录:用户使用微信扫描前端展示的二维码,微信客户端会将用户的微信账号与该二维码关联,并向后端发送确认登录的请求。 4. 后端验证登录状态:后端接收到微信客户端发送的确认登录请求后,根据请求中的参数进行验证,包括校验appid、redirect_uri、code等信息的有效性。 5. 后端获取用户信息:验证通过后,后端使用code参数向微信服务器发送请求,获取用户的access_token和openid等信息。 6. 后端生成登录凭证:后端根据获取到的用户信息生成自己的登录凭证(如JWT),并将该凭证返回给前端。 7. 前端保存登录状态:前端接收到后端返回的登录凭证后,可以将该凭证保存在本地(如localStorage或cookie)用于后续的请求验证和会话管理。 8. 后续请求的验证:前后端分离后,后续的请求需要在请求头中携带登录凭证进行验证,后端根据凭证的有效性判断用户的登录状态。 这就是前后端分离实现微信扫码登录的大致流程,通过这种方式可以实现用户使用微信账号进行快速登录和注册。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值