自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(23)
  • 收藏
  • 关注

原创 Go Web开发使用mode控制日志输出

我们可以通过Gin框架修改“gin.SetMode()”函数来设定运行模式。默认情况下,Gin处于“debug”模式,这会提供更详细的日志信息。在生产环境中,我们应该将其切换到“release”模式以减少日志输出并提高性能。Gin框架允许我们自定义日志处理逻辑,这样就可以根据不同的模式将日志输出到不同的位置,比如控制台、文件等。在生产环境中,我们可以通过创建一个自定义的“Logger”实例来实现将日志写入文件中。如果不做特殊配置,Gin默认使用控制台输出日志,这对于开发环境已经足够了。

2024-05-19 20:19:32 131

原创 GO Web-使用refresh Token 刷新access Token 模式

3. 检测Access Token过期:当客户端收到Access Token过期的响应时(通常是HTTP 401 Unauthorized错误),而不是立即让用户重新登录,客户端将使用Refresh Token来请求新的Access Token。如果Refresh Token有效且未过期,认证服务器验证其有效性,并返回一个新的Access Token(可能还有新的Refresh Token,取决于实现)。特点:有效期较长,通常比Access Token长很多,有时甚至是永久有效的,直到用户注销或被撤销。

2024-05-19 15:23:37 587

原创 GO Web开发-解决代码中循环引用的问题

2.正常的步骤是,请求来了先到router,然后路由这个地方会先去执行我们的middlewares里面的这个中间件(JWT的auth认证的中间件),在这个中间件里面它又调用了controller里面返回响应的方法。我们可以把ctx,就是常量的定义从middlewars这层拿出来,放到controller这层,然后在middlewars这一层把controller同意一下。1.例如a导入b这个包,b导入a这个包,a再导入b这个包,诸如此类的属于循环引用。

2024-05-18 19:56:28 171

原创 二、优化JWT认证中间件

2:重新建立一个middlewares包,在再middlewars包下建立一个关于认证的auth,此中间件用于判断token是否有效,并将有效的Token解析。3.假设在用户登录成功后发放Token,并且使用此Token可以获取用户信息。1:需要引进jwt包。

2024-05-17 20:04:47 145

原创 JWT Token

JWT默认是不加密的,不要把秘密信息放在这部分,JSON对象也要使用Base64URL算法转成字符串。头部和负载以JSON形式存在,三部分内容都经过了Base64编码,以.拼接。也是一个JSON对象,JWT规定了7个官方字段供选用。exp(expirayion time):过期时间。nbf(Not Before):生效时间。iat(Issued At):签发时间。签名是对前两部分的签名,防止数据篡改。iss(issuer):签发人。sub(subject):主题。jti(JWT ID):编号。

2024-05-16 20:07:06 148

原创 初学者学Linux常用命令

rm`:删除文件或目录(使用 `-rf` 参数可递归强制删除)。`touch`:创建新的空文件或更新文件的访问和修改时间。`grep`:在文件中搜索匹配特定模式(字符串)的内容。`find`:按照指定条件在文件系统中查找文件。`mv`:移动或重命名文件和目录。`pwd`:显示当前工作目录。`cd`:改变当前工作目录。`mkdir`:创建新目录。`rmdir`:删除空目录。以上是我初学碰到的Linux的命令。`cp`:复制文件或目录。`ls`:列出目录内容。

2024-04-27 15:24:54 124

原创 基于雪花算法生成用户ID

(1)别人在你的网站注册一下就能知道你的数据库里面到底有多少个用户。(2)在我们使用分库分表的时候,不同库中的userID会有可能重复。

2024-04-27 15:14:47 108

原创 大型Web项目CLD的分层理念

controller:整个Web服务的一个入口,负责处理路由,参数的一些校验,请求的转发等等,然后继续传递给longic这一层。DAO:(reponsitory):下一层的存储的内容,Mysql,redis等等交互的操作对外分装成简单的函数。model(模型):程序员编写应用程序应该具有的功能实现一些算法,与代码作成映射的关系。controller(控制器):控制整个数据的流向,数据变化的时候更新视图。longic:真正处理业务逻辑的地方(调用DAO层的函数或者接口)

2024-04-18 15:19:58 182

原创 使用 go-redis 库操作 zset

库对Redis中的有序集合进行基本操作,包括添加成员、修改成员分数、获取分数最高的成员和查询指定分数范围内的成员。通过使用带有超时的context,代码确保了操作不会无限期地等待Redis的响应,提高了程序的响应速度和稳定性。这段代码展示了如何使用。

2024-04-16 21:32:14 228

原创 redis.Nil

go-redis 库提供了一个 redis.Nil 错误来表示 Key 不存在的错误。因此在使用 go-redis 时需要注意对返回错误的判断。在某些场景下我们应该区别处理 redis.Nil 和其他不为 nil 的错误。

2024-04-16 21:21:44 307

原创 Go redis执行任意命令

go-redis 还提供了一个执行任意命令或自定义命令的 Do 方法,特别是一些 go-redis 库暂时不支持的命令都可以使用该方法执行。

2024-04-16 21:13:35 86

原创 Go redis的基本使用

【代码】Go redis的基本使用。

2024-04-16 21:01:20 71

原创 Mac如何安装redis

可以使用Redis的客户端工具来连接Redis服务器。使用Homebrew安装Redis。Homebrew是Mac上的一个包管理器,可以方便地安装软件。以上就是在Mac上安装Redis的步骤。安装完成后,你可以根据需要配置和使用Redis。如果看到Redis相关的进程正在运行,说明Redis已经成功安装并启动。启动Redis服务。检查Redis是否成功运行。Homebrew会自动下载并安装Redis。,表示已经成功连接到Redis服务器。打开终端(Terminal)。Mac 安装redis。

2024-04-16 17:14:28 196

原创 Mysql与go(预处理插入)

上示代码为预处理插入示例。

2024-04-04 20:32:23 118

原创 Mysql与go(预处理查询)

3. Prepare方法会先将sql语句发送给MySQL服务端,返回一个准备好的状态用于之后的查询和命令。返回值可以同时执行多个查询和命令。1. database/sql中使用下面的Prepare方法来实现预处理操作。

2024-04-04 20:30:01 113

原创 Mysql与go(删除数据)

【代码】Mysql与go(删除数据)

2024-04-04 20:25:03 73

原创 Mysql与go(更新数据)

【代码】Mysql与go(更新数据)

2024-04-04 19:09:17 101

原创 Mysql与go(插入数据)

【代码】Mysql与go(插入数据)

2024-04-03 22:29:21 118 1

原创 Mysql与go(单条查询&多条查询)

【代码】Mysql与go(单条查询&多条查询)

2024-04-03 22:13:54 125

原创 golang中defer的理解和用法

这时,你可以将关闭文件的操作放在defer语句中,这样即使在读写过程中发生错误,函数提前返回,文件关闭的操作依然会被执行。//defer语句的执行顺序是后进先出(LIFO),即最后执行的defer语句会最先执行,这在资源管理中非常有用,因为它可以确保资源的释放顺序与获取资源的顺序相反,例如先解锁再关闭文件。//在这个例子中,即使os.Open函数调用失败,defer语句中的fmt.Println("文件已关闭")和file.Close()都会被执行,从而确保了资源的正确释放。

2024-04-01 22:37:21 225

原创 初学Mysql与go(初始化mysql连接)

/在Go语言中,defer是一个关键字,它用于在函数返回之前执行一个语句或一个函数调用。//下面是一个使用defer的简单示例: //在这个例子中,即使os.Open函数调用失败,defer语句中的fmt.Println("文件已关闭")和file.Close()都会被执行,从而确保了资源的正确释放。//defer语句的执行顺序是后进先出(LIFO),即最后执行的defer语句会最先执行,这在资源管理中非常有用,因为它可以确保资源的释放顺序与获取资源的顺序相反,例如先解锁再关闭文件。

2024-04-01 22:33:11 525

原创 mysql基本学习

查orders表中对价格进行正序排序。SHOW DATABASES 查数据库。

2024-03-31 15:15:55 145

原创 最基本的Git提交使用

git commit 还有一个用法:git commit --amend // 不去生成一个新的commit对象,而是沿用本地上一个commit对象。如果你现在在a分支,想要切换到已有b分支,但是不想把当前分支有改动的文件都带到b分支去,下次切到a分支的时候希望有改动的文件都还在。如果你现在在a分支,想要切换到已有b分支,并且想把当前分支有改动的文件都带过去。git push "分支名" // 提交到指定的远程分支。如果你现在在a分支,想要切换到一个新的分支:b分支。最基本的git提交使用。

2024-03-01 11:37:01 446

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除