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

引言

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

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

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

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

username:password@consul.domaini.com

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

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

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

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

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

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

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

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

(0)

相关推荐

  • go使用Gin框架利用阿里云实现短信验证码功能

    第一步,调用阿里云Api发送短信并存入数据库或者是redis当中 阿里云短信平台网址 [https://api.aliyun.com/new#/?product=Dysmsapi&version=2017-05-25&api=SendSms&params={"RegionId":"cn-hangzhou","TemplateCode":"345","PhoneNumbers":&qu

  • Golang开发Go依赖管理工具dep安装验证实现过程

    目录 Go依赖管理工具 环境要求 目前版本 安装 验证 初始化 默认初始化 优先从$GOPATH初始化 Gopkg.toml Gopkg.lock 常用命令 dep ensure dep ensure -add dep ensure -update Go依赖管理工具 Go dependency management tool 环境要求 Golang >= 1.9Dep 目前版本 dep: version : devel build date : git hash : go version : g

  • golang中gin框架接入jwt使用token验证身份

    目录 jwt 流程: 1.这里使用开源的 jwt-go 1.token 工具类 2. 使用该中间件 3. controller部分代码 jwt jwt的原理和session有点相像,其目的是为了解决rest api中无状态性 因为rest接口,需要权限校验.但是又不能每个请求都把用户名密码传入,因此产生了这个token的方法 流程: 用户访问auth接口,获取token 服务器校验用户传入的用户名密码等信息,确认无误后,产生一个token.这个token其实是类似于map的数据结构(jwt数据结

  • go gin+token(JWT)验证实现登陆验证

    1.准备 go get github.com/dgrijalva/jwt-go go get github.com/gin-gonic/gin  2.代码 package main import ( "errors" "fmt" "github.com/dgrijalva/jwt-go" "github.com/gin-gonic/gin" "net/http" "time" ) fun

  • Google Kaptcha验证码生成的使用实例说明

    目录 Kaptcha是什么? 怎么使用Kaptcha? 1.首先下载jar包 2.配置kaptcha 3.将验证码保存进session中 4.验证码校验 Kaptcha验证码配置 效果图如下 Kaptcha是什么? kaptcha 是谷歌开源的非常实用的验证码生成工具,基于SimpleCaptcha的开源项目.使用Kaptcha 生成验证码十分简单并且参数可以进行自定义.只需添加jar包配置下就可以使用,通过配置,可以自己定义验证码大小.颜色.显示的字符等等.下面就来讲一下如何使用kaptcha

  • Go语言实现登录验证代码案例

    用Go语言实现登录验证,有3次机会,如果用户名为 zhangsan ,密码为 123456 ,则提示登录成功,否则提示还有几次机会,次数用完,提示登录失败.代码如下: package main import "fmt" func main() { var name string var pwd string var loginChance = 3 for i := 1; i <= 3; i++{ fmt.Print("请输入用户名:") fmt.Scanln(

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

    引言 这两天在做微服务上云的事,之前一直是本地运行,后来在服务器搭建了生产环境集群.上云时出现了一些幺蛾子 云上的服务都需要身份验证的,没有专用网关的话,至少也要设置 basicAuth(用户名+密码的方式) 今天使用 Golang 知名项目 Viper 连接远端配置中心 Consul 的时候发现怎么连接都不行.在不使用密码的情况下代码应该是这样子的 按理说,basicAuth 的话只需要在 URL 那里使用 username:password 就可以了,例如: username:passwor

  • java用户名密码验证示例代码分享

    类:NameII    权限:public方法:main    权限:public 参数:name,password,denglu,i;参数介绍:name,数据类型 String ,用来存储一个从 input 中获取的值,在本程序当中用作用户名的存放:password,数据类型 String ,用来存储一个从 input 中获取的值,在本程序当中用作密码的存放:denglu,数据类型 boolean,用来存储默认账户的登录状态,true 表示登录成功,false 表示尚未登录:i,数据类型 in

  • git设置用户名密码的示例代码

    git设置用户名密码 设置git用户名/邮箱 git config --global user.name [username] git config --global user.email [email] 但是这个仅仅是设置用户名密码,如果你的git 源每次操作需要你输入用户名/密码验证,你依然需要每次设置,那么该如何办呢? git保存用户名密码 这里主要是配置一个config项 有两个方法,基本上原理都是一样,都是修改.git/config文件 1.使用如下命令,修改config文件即可保存

  • vue+element-ui集成随机验证码+用户名+密码的form表单验证功能

    在登入页面,我们往往需要通过输入验证码才能进行登入,那我们下面就详讲一下在vue项目中如何配合element-ui实现这个功能 第一步:自定义一个生产随机验证码的组件,其本质是使用canvas绘制,详细代码如下: <template> <div class="s-canvas"> <canvas id="s-canvas" :width="contentWidth" :height="contentHeig

  • 详解C#使用AD(Active Directory)验证内网用户名密码

    详解C#使用AD(Active Directory)验证内网用户名密码 1. 连到内网,找到AD的domain地址 nslookup set types=all _ldap._tcp 2. 验证AD的函数 public bool ADLogin(string userName, string password) { // sample : // LDAP://xxx.com string domain = System.Configuration.ConfigurationManager.App

  • Go+Vue开发一个线上外卖应用的流程(用户名密码和图形验证码)

    图形化验证码生成和验证 功能介绍 在使用用户名和密码登录功能时,需要填写验证码,验证码是以图形化的方式进行获取和展示的. 验证码使用原理 验证码的使用流程和原理为:在服务器端负责生成图形化验证码,并以数据流的形式供前端访问获取,同时将生成的验证码存储到全局的缓存中,在本案例中,我们使用redis作为全局缓存,并设置缓存失效时间.当用户使用用户名和密码进行登录时,进行验证码验证.验证通过即可继续进行登录. 验证码库安装 借助开源的验证码工具库可以生成验证码. 首先,安装开源的验证码生成库: go

  • Spring Security 密码验证动态加盐的验证处理方法

    本文个人博客地址:https://www.leafage.top/posts/detail/21697I2R 最近几天在改造项目,需要将gateway整合security在一起进行认证和鉴权,之前gateway和auth是两个服务,auth是shiro写的一个,一个filter和一个配置,内容很简单,生成token,验证token,没有其他的安全检查,然后让对项目进行重构. 先是要整合gateway和shiro,然而因为gateway是webflux,而shiro-spring是webmvc,所

  • GitHub入门教程 手把手教你最简单的开源项目托管

    自从google code关闭了下载服务了之后,GitHub作为了目前最好用的免费开源项目托管站点,众多开源项目都托管在github,其中不乏著名的播放器MPC-HC. 不习惯于英文的朋友,难免少不了要进行摸索一番,甚至会因此头大而放弃. 这里将手把手地教大家一些本人的入门心得. 1.要托管到github,那你就应该要有一个属于你自己的github帐号,所以你应该先到github.com注册 打开浏览器 在地址栏输入地址:github.com 填写用户名.邮箱.密码 点击Sign up即可简单地

  • springBoot整合CXF并实现用户名密码校验的方法

    准备工作: 创建springBoot项目webservice_server 创建springBoot项目webservice_client 分别添加CXF的依赖: <!-- CXF webservice --> <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-spring-boot-starter-jaxws</artifactId> <version

  • Spring Security 实现用户名密码登录流程源码详解

    目录 引言 探究 登录流程 校验 用户信息保存 引言 你在服务端的安全管理使用了 Spring Security,用户登录成功之后,Spring Security 帮你把用户信息保存在 Session 里,但是具体保存在哪里,要是不深究你可能就不知道, 这带来了一个问题,如果用户在前端操作修改了当前用户信息,在不重新登录的情况下,如何获取到最新的用户信息? 探究 无处不在的 Authentication 玩过 Spring Security 的小伙伴都知道,在 Spring Security 中

随机推荐