2020
10-08
10-08
golang实现单点登录系统(go-sso)
这是一个基于Go语言开发的单点登录系统,实现手机号注册、手机号+验证码登录、手机号+密码登录、账号登出等功能,用户认证采用cookie和jwt两种方式。收发短信相关方法已提供,仅需根据短信通道提供商提供的接口做相应的参数配置即可使用。环境介绍golang语言:go1.13.3+、数据库:mysql5.7缓存:redis3.0项目地址https://github.com/guyan0319/...依赖包:github.com/dgrijalva/jwt-gogithub.com/gin-gonic/gingithub.com/go-xor...
继续阅读 >
当前的实践中问题在项目之间依赖的时候我们往往可以通过mock一个接口的实现,以一种比较简洁、独立的方式,来进行测试。但是在mock使用的过程中,因为大家的风格不统一,而且很多使用minimalimplement的方式来进行mock,这就导致了通过mock出的实现各个函数的返回值往往是静态的,就无法让caller根据返回值进行的一些复杂逻辑。首先来举一个例子packagetasktypeTaskinterface{Do(int)(string,error)}通过minimalimplement...
go第三方库github.com/spf13/viper 实现了对配置文件的读取并注入到结构中,好用方便。其中以viperInstance:=viper.New()//viper实例viperInstance.WatchConfig()viperInstance.OnConfigChange(func(efsnotify.Event){log.Print("Configfileupdated.")viperLoadConf(viperInstance)//加载配置的方法})可实现配置的热更新,不用重启项目新配置即可生效(实现热加载的方法也不止这一种,比如以文件的上次修改时...
通常大家开发大部分是本地gitpush提交,服务器上gitpull手动更新。git可以使用webhook实现自动部署。webhook是仓库平台的一个钩子事件,通过hook钩子监听代码,回调通知(通知地址就是你在各个git仓库平台中填写的webhook地址,一般在你的某个项目仓库如myproject.git里面的设置中)仓库平台填写的地址。其实原理流程就是:所以自动部署主要实现方式就是:-修改代码push-github(其他仓库平台)发送请求给你的网站服务器-网...
1,命令行查看Go开发包的环境变量配置信息命令行说明如下:第1行,执行goenv指令,将输出当前Go开发包的环境变量状态。第2行,GOARCH表示目标处理器架构。第3行,GOBIN表示编译器和链接器的安装位置。第7行,GOOS表示目标操作系统。第8行,GOPATH表示当前工作目录。第10行,GOROOT表示Go开发包的安装目录。从命令行输出中,可以看到GOPATH设定的路径为:C:\Users\Administrator\go2,Web框架Beego环境...
本文基于Go1.13版本循环在编程中是一个重要的概念,且易于上手。但是,循环必须被翻译成计算机能理解的底层指令。它的编译方式也会在一定程度上影响到标准库中的其他组件。让我们开始分析循环吧。循环的汇编代码使用循坏迭代array,slice,channel,以下是一个使用循环对slice计算总和的例子。funcmain(){l:=[]int{9,45,23,67,78}t:=0for_,v:=rangel{t+=v}println(t)}使用gotoolcompile-S...