# go iris
**Repository Path**: ruan-zhenrong/go-iris
## Basic Information
- **Project Name**: go iris
- **Description**: go iris casbin jwt vue实战。go+iris(web框架)+casbin(权限)+jwt+vue的web server框架,响应式web,可前后端分离
- **Primary Language**: Go
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: https://gitee.com/yhm_my/go-iris
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 200
- **Created**: 2021-01-16
- **Last Updated**: 2021-01-16
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# go iris RESTful实战
## 目前的界面效果




### 背景介绍
`感谢iview的作者提供的admin框架,后续一定会支持,哈哈。`
`Golang + Iris(web框架) + Casbin(权限) + JWT + Vue(渐进式js)`的web server框架,可前后端分离。
Iris的教程较少、零散、基础,且框架集合的完整实战案例极少(毕竟多数是用于工作,商业项目),几乎没有。后期可以直接使用。
源于开源,馈与社区。
称着还有精力在这方面。
***QQ交流群:955576223***
> #### 软件架构
> 目前支持单web架构,如果部署成前后端分离,可用nginx中间件代理(已添加跨域访问设置)。
> * 采用了Casbin(租户+角色)做Restful的rbac权限控制;
> * 采用jwt做用户认证、回话控制;
> * 采用Mysql+xorm做持久层;
> * admin前端项目持续更新中...,目前在iview-admin分支;
***
#### 项目目录结构
```
go-iris
+-- conf 所有的配置文件
+-- doc 说明文档(含go-bindata和mysql脚本文件)
+-- main
|------- inits 所有需初始化的目录
| +-- bindata 打包后的配置数据
| +-- parse 解析配置的golang结构
| +-- sys 系统初始化目录
| +-- init.go 初始化总入口
|------- middleware 中间件
| +-- casbin 权限中间件
| +-- jwts JWT中间件
| +-- middleware.go 中间件入口
|------- utils 工具目录
|------- web Web分层目录结构
| +-- db 数据库工具目录
| +-- models 数据模型
| +-- routes 路由
| +-- supports 一些支持结构
| +-- main.go 服务器启动入口文件
| +-- main.exe 打包的可执行文件
+-- resources
| +-- static 其他全部静态文件
| +-- index.html 网页入口文件
| +-- favicon.ico
+-- build64.bat 打包的脚本文件(windows 64bit)
```
### 使用教程
1. 修改配置:`/conf/db.conf`数据库配置,然后执行`/build.bat`文件,会在`/main/main.exe`生成可执行文件;
2. 直接执行;
3. 如果是mac或其他linux机器,请参考部署说明中的编译,按指定编译就可。
***
#### 部署(不使用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/下找到。
```
2. **启动项目**。执行项目中`/main/main.exe`, ***不需要其他任何依赖文件***。如下图:

只要cmd没有退出,说明启动成功
> * 启动后的本地服务地址:localhost:8088
> * 超级用户登录:
> > 初始账号:root
> > 初始密码: 123456
> * 一般用户登录:
> > 账号:yhm1
> > 密码:123456
***
> 安装环境
> * golang >= 1.9
> * nginx 不必须
> > 如果不使用前端环境,直接使用项目下的`/resource/*`的文件,则可以不需要下面的环境:
> > * vue >= 2.x
> > * node.js >= v8.9.3(LTS)
> 待需优化项,如:
> * 前端静态文件数据打包
> * 相同密码没随机加密
> * 同一用户生成的token,生成两次前一次没失效
> * 数据库连接池等等....
### QQ交流群:
