Golang web项目实现功能:实现动态密码(MFA机制)登录系统的功能,通过查询数据库对登录账号和动态密码验证,验证通过,系统登录成功。更多Golang开发学习资料:  https://edu.51cto.com/course/31781.html

1、源码地址

前端项目:https://gitee.com/anning-liang/learn-vue.git

后端项目:https://gitee.com/anning-liang/learn-web.git

2、创建Golang web工程项目

1、创建前端项目(开发电脑提前安装好nodejs环境),到E:\go\path\src目录,新建项目learn-vue目录,创建一个基于 webpack 模板的新项目: vue init webpack 项目名
# 打开windows命令行,创建项目
cd learn-vue
vue init webpack vue-aware

2、验证前端项目创建成功
cd vue-aware
npm run dev

3、创建后端项目,到E:\go\path\src目录,打开windows命令行,创建项目
bee new learn-web

3、构建Golang web后端应用镜像

# 项目learn-web功能说明:实现动态密码(MFA机制)登录系统的功能,通过查询数据库对登录账号和动态密码验证,验证通过,系统登录成功。
1、登录192.168.1.20服务器(已提前配置好golang环境和git环境)
2、克隆代码
cd /gopath/src/
git clone https://gitee.com/anning-liang/learn-web.git
3、编译
cd /gopath/src/learn-web
export CGO_ENABLED="0"   
export GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn
# go env -w GOPROXY=https://goproxy.cn,direct
go mod init learn-web
go mod tidy
go build
4、编写Dockerfile
# Dockerfile文件内容:
vi Dockerfile
FROM alpine:3.15.0
MAINTAINER 834951526@qq.com
ENV TZ=Asia/Shanghai
RUN mkdir -p /mproc/
ADD localtime /etc/localtime
COPY conf /mproc/conf
#COPY views/static /mproc/views/static
#COPY views/index.html /mproc/views/index.html
COPY learn-web /mproc/learn-web
WORKDIR /mproc
EXPOSE 8089
ENTRYPOINT ["./learn-web"]
5、构建learn-web应用镜像
# 拉取基础镜像
docker pull alpine:3.15.0
# 构建应用镜像
docker build -t learn-web:1.0.0 .
# 推送到镜像仓库(如遇到推送到远程仓库,请替换远程仓库地址)
docker push xxxxxx:5000/release/learn-web:1.0.0

6、验证应用镜像运行容器正常
docker ps 
docker logs -f --tail=100 <containerid>

4、运行Golang web后端应用容器

# 配置文件挂载到容器里启动应用容器
1、上传应用配置文件到192.168.1.20:/data/learn-web/conf目录下

2、登录192.168.1.20服务器
docker run -d --restart=always -p 8089:8089 --name learn-web \
-v /data/learn-web/conf:/app/conf learn-web:1.0.0

3、验证容器日志
docker ps 
docker logs -f --tail=200 <containerid>

5、构建Golang web前端应用镜像

# 前端项目基于vue框架实现,将编译打包文件上传到服务器制作应用镜像
1、上传vue项目部署包static、index.html、localtime、default.conf、Dockerfile到192.168.1.20服务器

2、编写dockerfile,并上传到192.168.1.20服务器
vi dockerfile
# 设置基础镜像
FROM nginx:1.19.6
# 定义作者
MAINTAINER 834951526@qq.com
# 将static文件中的内容复制到 /usr/share/nginx/html/ 这个目录下面
COPY static  /usr/share/nginx/html/static/
COPY index.html  /usr/share/nginx/html/
#用本地的 default.conf 配置来替换nginx镜像里的默认配置
COPY default.conf /etc/nginx/conf.d/default.conf
EXPOSE 8088

3、构建learn-vue应用镜像
# 拉取基础镜像
docker pull nginx:1.19.6
# 构建应用镜像
learn-vue:1.0.0 .
# 推送到镜像仓库(如遇到推送到远程仓库,请替换远程仓库地址)
docker push xxxxxx:5000/release/learn-vue:1.0.0

4、验证应用镜像运行容器正常

6、运行Golang web前端应用容器验证系统业务

# 系统需访问数据库,请使用源码目录sql脚本创建数据库表。
# 前端项目配置请求后端项目接口服务相关方法,详见课程:https://edu.51cto.com/course/31781.html
1、登录192.168.1.20服务器,运行learn-vue容器
docker run -d --restart=always -p 8088:8088 --name learn-vue learn-vue:1.0.0

2、验证容器日志
docker ps 
docker logs -f --tail=200 <containerid>

3、配置MFA账号
# MFA账号生成的一次性密码登录系统
在阿里云APP或微信小程序运维密码添加MFA账号和密钥:
账号:admin
密钥:NFMSBPGEJLF4VQILE6IZKBJXD5TTJW6B

添加MFA账号和密钥方法,可以用微信小程序运维密码添加,也可以用阿里云APP添加。
阿里云APP添加步骤示例详见课程:https://edu.51cto.com/course/31781.html

4、验证系统业务
打开浏览器访问http://192.168.1.20:8088
按提示输入账号和MFA密码