go开源项目用户名密码验证的逻辑鬼才写法

 更新时间:2022年07月20日 09:49:09   作者:橫貫八方  
这篇文章主要为大家介绍了go开源项目中发现的一个逻辑鬼才写法,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

引言

这两天在做微服务上云的事,之前一直是本地运行,后来在服务器搭建了生产环境集群。上云时出现了一些幺蛾子

云上的服务都需要身份验证的,没有专用网关的话,至少也要设置 basicAuth(用户名+密码的方式)

今天使用 Golang 知名项目 Viper 连接远端配置中心 Consul 的时候发现怎么连接都不行。在不使用密码的情况下代码应该是这样子的

按理说,basicAuth 的话只需要在 URL 那里使用 username:password 就可以了,例如:

username:password@consul.domaini.com

但这么填写的话,就会出现连接不上的情况,真的坑。

于是我顺着网线一路查看代码,阅读到关键位置

原来它并不是让开发者通过常规的 URL 方式设置用户名密码,也不是让开发者填入用户名密码参数,而是从本地环境变量里面取,真逻辑鬼才

正确的写法应该是下面这样

如果没有跟着网线找的话,真的会被它尬死,放一下它的其他代码

重要的是,它的文档 github.com/spf13/viper 里面并没有提及这些内容

最后补一下,很多人说国内程序员 、国内程序员没有创造力 、外国程序员就是流批。说实在的,我们只是没有那么多时间(都是加班作的),英语也没那么好。要不然哪里还会有这些瞎编的说法,你觉得呢?

以上就是go开源项目中逻辑鬼才写法的详细内容,更多关于go开源逻辑代码的资料请关注脚本之家其它相关文章!

相关文章

  • Go语言中使用反射的方法

    Go语言中使用反射的方法

    这篇文章主要介绍了Go语言中使用反射的方法,实例分析了Go语言实现反射的技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-02-02
  • GO语言中defer实现原理的示例详解

    GO语言中defer实现原理的示例详解

    这篇文章主要为大家详细介绍了Go语言中defer实现原理的相关资料,文中的示例代码讲解详细,对我们学习Go语言有一定的帮助,需要的可以参考一下
    2023-02-02
  • go语言reflect.Type 和 reflect.Value 应用示例详解

    go语言reflect.Type 和 reflect.Value 应用示例详解

    这篇文章主要为大家介绍了go语言reflect.Type 和 reflect.Value 应用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09
  • go-kit组件使用hystrix中间件的操作

    go-kit组件使用hystrix中间件的操作

    这篇文章主要介绍了go-kit组件使用hystrix中间件的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04
  • 详解Golang中Requests包的使用

    详解Golang中Requests包的使用

    Go的net/http包虽然功能强大、用途也广告,但要想正确的使用请求的客户端是非常繁琐的,所以本文和大家分享一个高效的HTTP的请求包carlmjohnson/requests的使用,需要的小伙伴可以了解一下
    2023-06-06
  • 以Golang为例详解AST抽象语法树的原理与实现

    以Golang为例详解AST抽象语法树的原理与实现

    AST 使用树状结构来表达编程语言的结构,树中的每一个节点都表示源码中的一个结构,本文将以GO语言为例,为大家介绍一下AST抽象语法树的原理与实现,希望对大家有所帮助
    2024-01-01
  • Go语言学习笔记之文件读写操作详解

    Go语言学习笔记之文件读写操作详解

    这篇文章主要为大家详细介绍了Go语言对文件进行读写操作的方法,文中的示例代码讲解详细,对我们学习Go语言有一定的帮助,需要的可以参考一下
    2022-05-05
  • go语言处理TCP拆包/粘包的具体实现

    go语言处理TCP拆包/粘包的具体实现

    TCP的拆包/粘包也算是网络编程中一个比较基础的问题了,本文主要介绍了go语言处理TCP拆包/粘包,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Go语言中的goroutine和channel如何协同工作

    Go语言中的goroutine和channel如何协同工作

    在Go语言中,goroutine和channel是并发编程的两个核心概念,它们协同工作以实现高效、安全的并发执行,本文将详细探讨goroutine和channel如何协同工作,以及它们在并发编程中的作用和优势,需要的朋友可以参考下
    2024-04-04
  • 一文带你探索Go语言中的函数一等公民

    一文带你探索Go语言中的函数一等公民

    你是否听说过 Go 语言中的函数是一等公民,如果没有,那么恭喜你,本文将带你一起揭开这个神秘的面纱,感兴趣的小伙伴快来和小编一起学习起来吧
    2023-07-07

最新评论