/go-iris-vue

go iris casbin jwt vue实战。go+iris(web框架)+casbin(权限)+jwt+vue的web server框架,响应式web,可前后端分离

Primary LanguageGoGNU Lesser General Public License v3.0LGPL-3.0

<<<<<<< HEAD go iris web

go iris web实战(响应式web)

目前的界面效果

登录 用户管理 角色管理 菜单管理

背景介绍

Golang + Iris(web框架) + Casbin(权限) + JWT + Vue(渐进式js)的web server框架,可前后端分离。
Iris的教程较少、零散、基础,且框架集合的完整实战案例极少(毕竟多数是用于工作,商业项目),几乎没有。后期可以直接使用。
源于开源,馈与社区。
称着还有精力在这方面。 QQ交流群:955576223

软件架构

目前支持单web架构,如果部署成前后端分离,可用nginx中间件代理(已添加跨域访问设置)。

  • 采用了Casbin做Restful的rbac权限控制;
  • 采用jwt做用户认证、回话控制;
  • 采用Mysql+xorm做持久层;
  • Vue前端项目持续更新中...,目前在front-vue分支;

项目目录结构

go-iris
  +-- a 该目录放的是临时的测试方法
  +-- conf 所有的配置文件目录
  +-- doc 说明文档(含go-bindata和mysql文件)
  +-- exec_packahe 可执行的打包文件(目前只有win 64bit的打包)
  +-- inits 所有需初始化的目录
  |       +-- parse 所有配置文件的初始化目录
  |       +-- init.go 用于初始化系统root用户,并注入所有service
  +-- middleware 包含的中间件目录
  |       +-- casbins 用于rbac权限的中间件的目录
  |       +-- jwts jwt中间件目录
  +-- resources 打包的前端静态资源文件
  +-- utils 工具包目录
  +-- web
  |       +-- db 数据库dao层目录
  |       +-- models 模型文件目录
  |       +-- routes 所有分发出来的路由的目录
  |       +-- supports 提供辅助方法的目录
  +-- main.go 入口

使用教程

  1. 每次修改/conf/app.yml/conf/db.yml的配置后,都需要在项目下执行命令打包配置数据:go-bindata -pkg parse -o inits/parse/conf-data.go conf/会生成/inits/parse/conf-data.go数据文件(执行成功后不会有任何提示,则反之);
  2. 部署时如有上述配置文件修改也需要再执行一遍上述命令,如此才能使配置修改生效
  3. go-bindata的安装和使用教程在项目下的/doc/go-bindata-usage文件中说明;
  4. 如果不使用前端,可以使用server端根目录下已经打包好的/resources/*前端文件;
  5. 如果要使用前端:
    • clone或下载front-vue分支代码
    • 推荐安装vue >= 2.xnode.js >= v8.9.3(LTS)环境。IDE推荐安装webstone
    • npm install安装本地前端环境
    • npm run dev启动本地前端环境
    • npm run build打包前端文件
    • 可以将打包的dist目录下的文件拷贝到server端目录的/resources/目录下

部署(不使用nginx情况下),这里在windows 64bit环境下操作为例。依如下步骤操作:

  1. 编译server端项目。在项目下使用命令行执行下面的命令(根据你的需要选择目标OS):
[[编译成当前环境]]
go install
[[编译成Linux 64bit]]
set CGO_ENABLED=0
set GOARCH=amd64
set GOOS=linux
go install
[[编译成Mac]]
set CGO_ENABLED=0
set GOARCH=amd64
set GOOS=darwin
go install
编译后的可执行文件在你本地go环境的GOPATH/bin/下找到。
  1. 启动项目。将server端打包后的可执行文件 和 /resources/*前端目录文件 放在同一级目录中,执行go打包后的可执行文件,启动。如下图: 部署时包的结构
  • 启动的本地服务地址:localhost:8088
  • 超级用户登录:

    初始账号:root
    初始密码: 123456

  • 一般用户登录:

    账号:yhm1
    密码:123456


安装环境

  • golang >= 1.9
  • nginx 不必须

    如果不使用前端环境,直接使用项目下的/resource/*的文件,则可以不需要下面的环境:

    • vue >= 2.x
    • node.js >= v8.9.3(LTS)

待需优化项,如:

  • 前端静态文件数据打包
  • 相同密码没随机加密
  • 同一用户生成的token,生成两次前一次没失效
  • 数据库连接池等等....

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码 ======= go iris web

go iris RESTful实战(响应式web)

目前的界面效果

登录 用户管理 角色管理 菜单管理

背景介绍

Golang + Iris(web框架) + Casbin(权限) + JWT + Vue(渐进式js)的web server框架,可前后端分离。
Iris的教程较少、零散、基础,且框架集合的完整实战案例极少(毕竟多数是用于工作,商业项目),几乎没有。后期可以直接使用。
源于开源,馈与社区。
称着还有精力在这方面。 QQ交流群:955576223

软件架构

目前支持单web架构,如果部署成前后端分离,可用nginx中间件代理(已添加跨域访问设置)。

  • 采用了Casbin做Restful的rbac权限控制;
  • 采用jwt做用户认证、回话控制;
  • 采用Mysql+xorm做持久层;
  • Vue前端项目持续更新中...,目前在front-vue分支;

项目目录结构

go-iris
  +-- a 该目录放的是临时的测试方法
  +-- conf 所有的配置文件目录
  +-- doc 说明文档(含go-bindata和mysql文件)
  +-- exec_packahe 可执行的打包文件(目前只有win 64bit的打包)
  +-- inits 所有需初始化的目录
  |       +-- parse 所有配置文件的初始化目录
  |       +-- init.go 用于初始化系统root用户,并注入所有service
  +-- middleware 包含的中间件目录
  |       +-- casbins 用于rbac权限的中间件的目录
  |       +-- jwts jwt中间件目录
  +-- resources 打包的前端静态资源文件
  +-- utils 工具包目录
  +-- web
  |       +-- db 数据库dao层目录
  |       +-- models 模型文件目录
  |       +-- routes 所有分发出来的路由的目录
  |       +-- supports 提供辅助方法的目录
  +-- main.go 入口

使用教程

  1. 每次修改/conf/app.yml/conf/db.yml的配置后,都需要在项目下执行命令打包配置数据:go-bindata -pkg parse -o inits/parse/conf-data.go conf/会生成/inits/parse/conf-data.go数据文件(执行成功后不会有任何提示,则反之);
  2. 部署时如有上述配置文件修改也需要再执行一遍上述命令,如此才能使配置修改生效
  3. go-bindata的安装和使用教程在项目下的/doc/go-bindata-usage文件中说明;
  4. 如果不使用前端,可以使用server端根目录下已经打包好的/resources/*前端文件;
  5. 如果要使用前端:
    • clone或下载front-vue分支代码
    • 推荐安装vue >= 2.xnode.js >= v8.9.3(LTS)环境。IDE推荐安装webstone
    • npm install安装本地前端环境
    • npm run dev启动本地前端环境
    • npm run build打包前端文件
    • 可以将打包的dist目录下的文件拷贝到server端目录的/resources/目录下

部署(不使用nginx情况下),这里在windows 64bit环境下操作为例。依如下步骤操作:

  1. 编译server端项目。在项目下使用命令行执行下面的命令(根据你的需要选择目标OS):
[[编译成当前环境]]
go install
[[编译成Linux 64bit]]
set CGO_ENABLED=0
set GOARCH=amd64
set GOOS=linux
go install
[[编译成Mac]]
set CGO_ENABLED=0
set GOARCH=amd64
set GOOS=darwin
go install
编译后的可执行文件在你本地go环境的GOPATH/bin/下找到。
  1. 启动项目。将server端打包后的可执行文件 和 /resources/*前端目录文件 放在同一级目录中,执行go打包后的可执行文件,启动。如下图: 部署时包的结构
  • 启动的本地服务地址:localhost:8088
  • 超级用户登录:

    初始账号:root
    初始密码: 123456

  • 一般用户登录:

    账号:yhm1
    密码:123456


安装环境

  • golang >= 1.9
  • nginx 不必须

    如果不使用前端环境,直接使用项目下的/resource/*的文件,则可以不需要下面的环境:

    • vue >= 2.x
    • node.js >= v8.9.3(LTS)

待需优化项,如:

  • 前端静态文件数据打包
  • 相同密码没随机加密
  • 同一用户生成的token,生成两次前一次没失效
  • 数据库连接池等等....

参与贡献

  1. Fork 本仓库
  2. 新建 Feat_xxx 分支
  3. 提交代码

f062733178f584d4966337090f7924c30633c783

  1. 新建 Pull Request