Golang实现登录功能

用户登录框架

1. 框架简介

用户登录框架是一个用于处理用户登录和登出的封装框架,它提供了一系列的接口和函数来实现用户登录和验证的功能。该框架使用Redis作为Token的存储和验证工具,使用HTTP协议与Token服务进行交互。

2. 框架使用

2.1 创建Framework实例

tokenServiceURL := "http://localhost:8080/login"
options := []*Option{
   
	&Option{
   Username: "user1", Password: "password1"},
	&Option{
   Username: "user2", Password: "password2"},
}
redisAddrs := []string{
   "localhost:6379"}
framework := New(tokenServiceURL, options, redisAddrs)

2.2 启动框架

framework.Run()

2.3 配置选项 可以通过修改options来添加或修改用户登录选项。

2.4 配置Redis地址 可以通过修改redisAddrs来添加或修改Redis服务器地址。

3. 框架接口和函数

3.1 New

New(tokenServiceURL string, options []*Option, redisAddrs []string) *Framework

创建Framework实例,参数为TokenService的URL地址、用户登录选项列表和Redis服务器地址列表。

3.2 Run

Run()

启动框架,监听HTTP请求。

3.3 loginHandler 处理用户登录请求。

3.4 logoutHandler 处理用户登出请求。

3.5 handleRoot 处理请求根路径的请求。

3.6 getToken 获取请求中的Token。

3.7 extractToken 从响应体中提取Token。

3.8 verifyResult 验证Token的结果。

4. 使用注意事项

  • TokenService的URL地址需要根据实际情况进行修改。
  • options参数需要根据实际需求进行配置。
  • Redis服务器地址需要根据实际情况进行配置。
  • 在使用框架之前,需要先启动框架。
  • 框架提供了一系列的接口和函数来处理用户登录和验证的功能,需要根据实际情况进行调用。

完整代码封装

package loginTool

import (
	"encoding/json"
	"fmt"
	"github.com/go-redis/redis"
	"log"
	"net/http"
)

// Option 是用户登录的选项
type Option struct {
   
	Username string
	Password string
}

// Framework 是一个封装了用户登录和登出功能的框架
type Framework struct {
   
	tokenServiceURL string
	options         []*Option
	redisClient     *redis.Client
}

// New 创建一个 Framework 的实例
// 参数 tokenServiceURL 是 TokenService 的 URL 地址
// 参数 options 是用户登录的选项列表
// 参数 redisAddrs 是 Redis 服务器的地址列表
func New(tokenServiceURL string, options []*Option, redisAddrs []string) *Framework {
   
	redisClient := redis.NewClient(&redis.Options{
   
		Addresses: redisAddrs,
	}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值