前端面试题:扫码登录实现方式

📌 温馨提示:
本文内容可能随时间变动而失效,请以页面显示的更新时间为准。
若内容已不准确或资源失效,欢迎留言或联系站长反馈修正。
⚠️ 免责声明:
本文仅供学习与参考,观点仅代表作者个人意见,与本站无关。
如有侵权问题,请立即联系我们处理,谢谢理解与支持。

以下是一些常见的前端扫码登录实现方式:

自有账户扫码登录

  1. 用户访问登录页面,前端向后端请求登录的二维码和唯一标识key,这个key用来索引用户登录状态。
  2. 服务端生成二维码,并将key保存(本地或Redis等),然后将二维码和参数返给前端。可以后端生成二维码并上传到OSS,然后返回给前端二维码的地址;也可以直接返回给前端字符串,由前端自己去生成二维码。
  3. 前端拿到二维码后进行展示,用户使用手机端应用扫描二维码。
  4. 手机端扫描后,将包含key的信息发送给后端,后端验证用户身份等信息。
  5. 前端页面定时向后端发送请求,查询当前用户是否已经完成登录操作。可以使用setInterval函数来定时发送请求,并根据后端返回的登录状态进行相应的处理。当用户成功完成登录后,前端页面会收到后端返回的登录成功消息,此时可以根据需要进行跳转或者其他相应的操作。

基于微信的第三方扫码登录

  1. 注册微信开放平台账号,创建一个网站应用,获取AppID和AppSecret。
  2. 在微信开放平台的应用详情页面配置授权回调域名。
  3. 前端使用qrcode.js等库在前端生成二维码。创建一个按钮用于触发微信扫码登录,并创建一个容器用于展示二维码。在JavaScript中添加点击事件监听器,当点击按钮时,请求后端接口获取二维码URL,并使用qrcode.js生成二维码。
  4. 后端接收到前端请求后,根据AppID、回调URL等信息生成微信登录的二维码URL,并返回给前端。
  5. 用户使用微信扫描二维码并在手机上确认登录。
  6. 微信会将授权码(code)和状态(state)重定向到配置的回调URL。
  7. 后端使用授权码请求微信的Access Token接口获取用户信息,完成登录流程。

基于微信公众号的扫码登录

  1. 注册微信公众号,在微信公众号后台配置基本信息,包括服务器回调URL,用来接收扫码消息事件。
  2. 服务端生成一个带参数的二维码,给前端并展示,前端展示二维码图和参数(ticket)。
  3. 用户扫描带场景值二维码时,微信会根据用户是否已关注公众号推送相应事件给开发者。如果用户还未关注公众号,则用户可以关注公众号,关注后微信会将带场景值关注事件推送给开发者;如果用户已经关注公众号,在用户扫描后会自动进入会话,微信也会将带场景值扫描事件推送给开发者。
  4. 服务端收到关注事件后,将消息记录到数据库中(包含ticket)。
  5. 前端通过轮询的方式,定时请求服务端查询扫码结果(通过ticket),根据服务端返回的结果进行相应处理,如登录成功则进行页面跳转等操作。
THE END
喜欢就支持一下吧
点赞10
评论 抢沙发

请登录后发表评论

    暂无评论内容