基于beego框架的jwt系统

基于beego框架的jwt系统

本项目是基于beego的jwt应用。目前开发的主要包括用户登录和注册,token的获取和验证,其他的后续再完善。项目地址:https://github.com/nan1888/beego_jwt

  • 项目设计
    项目是基于beego和jwt_go来的。项目中的common文件主要是写一些基本的函数,例如加密,封装之类。项目主要有4个路由,token路由,主要是负责token相关的操作;user路由,主要是负责用户相关的操作,例如用户注册等;role路由,主要是负责权限相关的操作,目前还没使用;action路由,主要是负责操作类的,目前还没有使用。项目暂时是使用mysql作为存储。
  • 数据字典
    用户角色表
name type remark
id int(11) 用户id
name varhcar(32) 用户名称
passwd varchar(32) 用户登录密码
e-mail varchar(255) 用户邮箱
status int(1) 用户状态
create_time datetime 用户创建时间
last_login_time datetime 最后登录时间
role_id int(3) 组ID
appid char(32) 用户的appid
secret char(32) 用户的secret
salt char(255) 密码加密用的盐

权限ID表

name type remark
id int(11) 权限id
app_id int(11) 模块id
zone_id int(11) 权限组id

token表

name type remark
id varchar(64 appid
token varhcar(32) 用户token
creat_time datetime 创建时间
express_in char(15) 有效期

用户组表

name type remark
id int(11) 组ID
zone_remark varchar(255) 组描述
zone_name varchar(255) 组名称

模块ID表

name type remark
id int(11) 模块id
app_name varchar(32) 模块名称
app_remark varchar(255) 模块描述
create_time varchar(20) 创建时间
rewrite_time varchar(20) 操作时间
  • 路由说明
    见代码里的/routes/route.go

  • 目录结构
    项目是用beego进行开发的,基本的目录是跟beego一样,其中common是公共函数的目录,用来存放一些常用函数。

  • 运行
    1、cd /common 进入common目录
    2、go install common.go 编译common里面的包文件
    3、cd beego_jwt 进入beego_jwt目录
    4、bee run 使用bee命令运行
    其中用户注册和用户登录是使用post的方式,需要用类似postman的工具测试。
    当用户注册成功后,会返回如下:
ok

当用户登录成功后,会返回如下:

{
  "code": 0,
  "user": {
    "Username": "nan18887",
    "Passwd": "835f9abe3d040d1d4edc6fb1f9aa651c7fc3e246419ade706694d8a8b0ecfd4ba4a6a7739ad409db9cd3045cf35d3bf2deb7638e69844ab8aec0f2f0051c148b",
    "Salt": "6e760f937dc7ab266100801d93cc3a9a2285aa018bf1ce5914f985d92c88424cf1f941c811684ca5fb9914e91f6ed5eb48c3e2955ac3a46d3b29d1a92626ba27",
    "Id": 2,
    "Create_time": "2017-01-11 11:18:36",
    "Appid": "K0ftbEIRMAYHTu+tu1ZZmA==",
    "Secret": "n19vrgogshCcZgDkDU2OZA==",
    "Role_id": 1,
    "Email": "[email protected]"
  }
}

当获取access_token成功后,会返回如下:

{
  "Token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6IkswZnRiRUlSTUFZSFR1IHR1MVpabUE9PSIsImV4cCI6MTQ4NDEwODM5MiwiaXNzIjoiSzBmdGJFSVJNQVlIVHUgdHUxWlptQT09In0.cFWJ9GVTO6ZdouP1GWvTiGAM_7lW0HAifE02djyRJRo",
  "Appid": "K0ftbEIRMAYHTu tu1ZZmA==",
  "Secret": "n19vrgogshCcZgDkDU2OZA==",
  "Express_in": 1484111992
}
  • 后续开发
    1、完善功能模块
    2、把access_token的记录存放到Mongodb

你可能感兴趣的:(golang)