GVA 使用技巧和最新特性
整理并持续更新使用技巧 [Tips.] 和最新特性 [Feat.]
[Feat.] 打包静态文件到二进制
与当前默认方式不冲突 使用方式
go get -u github.com/go-bindata/go-bindata/... cd server // 如果提示找不到 go-bindata,请排查下 $GOPATH/bin 是否在环境变量中 go generate -tags=packfile ./packfile/usePackFile.go go build -tags=packfile
即可将该二进制文件放置到任何位置运行,不再需要 resource/...
config.yaml
程序启动时,会将 go build
时存储到二进制中的快照,写入到当前目录对应位置。
写入到磁盘的行为,只会在文件不存在时进行写入,不会覆盖。
本地简单测试无问题,如有问题请提交 issue。
[Feat.] 根据权限隐藏或展示前端 dom
增加了 v-auth
指令,支持 v-auth.not
使用方法如下,row 中三个 dom,效果为:
- 第一个
dom
对角色 ID 为 888 的角色不显示 - 第二个
dom
对角色 ID 为 888 的角色显示 - 第三个
dom
对角色 ID 为 888,999,111 的角色不显示 - 第四个
dom
对角色 ID 为 888,999,111 的角色显示
<el-row :gutter="32"> <el-col v-auth.not="888" :xs="24" :sm="24" :lg="8"> <div class="chart-wrapper"> <raddar-chart /> </div> </el-col> <el-col v-auth="888" :xs="24" :sm="24" :lg="8"> <div class="chart-wrapper"> <stackMap /> </div> </el-col> <el-col v-auth.not="[888,999,111]" :xs="24" :sm="24" :lg="8"> <div class="chart-wrapper"> <Sunburst/> </div> </el-col> <el-col v-auth="[888,999,111]" :xs="24" :sm="24" :lg="8"> <div class="chart-wrapper"> <Sunburst/> </div> </el-col> </el-row>
[Tips.] 多点登陆和 redis
首先要将配置文件中 use-multipoint
设置为 true,并且安装 redis。这样,项目启动时,会在 core/server.go
中初始化 redis。
这里简单讲一下实现逻辑,我们的多点登陆判断在 sever/v1/sys_user.go
的 tokenNext
方法中。当用户登陆时,我们会先生成 token,然后用户名去 redis
查询该用户是否已经有在使用的 token(即是否已经登陆过):
- 如果没有,那就将生成的 token 存入 redis,完成登陆。
- 如果有,那就将该 token 存入黑名单(mysql),将生成的 token 存入 redis,完成登陆。
之所以单独讲一下这里,是因为有些场景不限制多点登陆,又想获取到用户的 token,理解了以上实现方式,可以根据自己的业务修改,或者另写其他逻辑。
[Tips.] Nginx 的配置
代码参考如下
location /v1 { proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; rewrite ^/v1/(.*)$ /$1 break; #重写 proxy_pass 后端地址; # 设置代理服务器的协议和地址 }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
上一篇: GVA 简单使用
下一篇: G2 如何绘制一个常见的折柱饼图
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论