扫码登录 简单实现

本文介绍了使用Golang实现扫码登录的基本原理和过程。通过服务器生成唯一Key并附加到登录请求上,用户扫描二维码后,服务器确认登录状态。前端页面定时检查Key是否已被扫描,以完成后续操作。需要注意的是,这种方案的Key安全性较低,仅适用于学习,实际商务应用需谨慎处理。
摘要由CSDN通过智能技术生成

简单原理是 服务器生成唯一的 key  附带到login 上
用户扫描 二维码 并且访问服务器 服务器反馈登录  状态
前端 页面 每隔一段时间扫描 服务器 当前的key是否扫描, 然后后续操作


代码:


package main

import (
	"fmt"
	"io"
	"math/rand"
	"net/http"
	"time"

	. "github.com/soekchl/myUtils"
)

const file = `
<!DOCTYPE html>
<html lang="zh-ch">

<head>
  <meta charset="UTF-8">
  <title>扫码</title>
</head>

<body>
 <br>

   <p>扫码登录</p>
   <img id="keyImage" src="http://qr.liantu.com/api.php?text=%v" alt="My Eth Address" title="My ETH Address">



  <br>
  <br>
</body>
<script>


 setInterval("checkLogin()","1000");

  function checkLogin() {
    var xhr = ajaxFunction();
    xhr.onreadystatechange = function () {
      if
Spring Boot是一个非常强大的框架,其它框架可以在其基础之上进行扩展,开发高效方便。 扫码登录是指通过扫描某种二维码实现登录身份验证,其实现方式也比较简单。以微信扫码登录为例,其主要过程如下: 1. 用户在PC上打开登录网页,选择微信扫码登录选项,网页生成二维码; 2. 用户打开微信移动客户端,在“扫一扫”中扫描登录网页生成的二维码; 3. 微信客户端读取网页中的UUID(用于唯一标识每个扫码登录的操作),并将该UUID发送到微信服务器中; 4. 后台服务收到微信服务器发来的UUID,并根据UUID从一个Redis中获取登录信息,生成登录Token; 5. 后台服务将生成的Token返回给网页,网页中通过Cookie将Token存储在用户端; 6. 后续用户的操作中,网页和后台服务以Token进行身份验证。 在以上过程中,由于前、后端的分离操作,需要实现一个通过网页得到UUID的后端服务。这里可以用Spring Boot实现。具体步骤如下: 1. 创建Spring Boot工程,并在pom.xml中添加相关依赖; 2. 实现一个Controller接口,用于处理二维码请求,生成UUID存储在Redis中; 3. 实现一个AuthenticationProvider接口,用于验证生成的Token,并授权用户操作; 4. 将Controller接口映射到一个固定路径,并在网页中创建扫码登录界面; 5. 网页从Controller中获取UUID,并生成二维码(这个可以使用第三方二维码生成工具); 6. 网页通过轮询或WebSocket实现Token的获取和存储。 总的来说,Spring Boot实现扫码登录的过程较为简单,可以基于现有的技术栈进行扩展,极大地提高了开发效率。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值