Help us shape the future of Go! Take the 2026 Go Developer Survey

vbase

package module
v1.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 23, 2026 License: Apache-2.0 Imports: 8 Imported by: 0

README

VBase

Go Version License Framework

基于 Golang 的高性能身份认证与权限管理基础框架

快速开始 • 核心特性 • 集成指南 • API 文档 • 架构设计


简介

VBase 是一个基于 Vigo 框架开发的高性能后端基础框架,提供一套标准化的用户管理、作用域权限控制(Scoped RBAC)和 OAuth2 认证服务。可作为独立服务部署,也可作为基础库集成到你的 Go 项目中。

核心特性

  • 🔐 完整认证体系 - JWT Token 认证(Access + Refresh)、多因素认证(短信验证码)
  • 🛡️ Scoped RBAC 权限控制 - 基于作用域(Scope)的角色访问控制,支持资源级权限和通配符权限
  • � 层级权限管理 - 支持资源类型(奇数层)和实例(偶数层)的精细化权限控制
  • 🔑 OAuth2 Provider - 完整的 OAuth2 服务端实现,支持第三方应用接入
  • 🗄️ 多数据库支持 - MySQL、PostgreSQL、SQLite 自动适配
  • 📱 内置管理界面 - 基于 vhtml 的嵌入式管理后台
  • 🚀 高性能 - 基于洋葱模型中间件架构,低延迟高并发
  • 🧪 完整测试 - 集成测试脚本覆盖核心业务流程

快速开始

安装
go get github.com/veypi/vbase
作为独立服务运行
# 克隆项目
git clone https://github.com/veypi/vbase.git
cd vbase

# 配置数据库(编辑 dev.yaml 或使用环境变量)
export DSN="root:password@tcp(127.0.0.1:3306)/vbase?charset=utf8&parseTime=True"
export DB="mysql"

# 启动服务
go run ./cli/main.go

# 或使用 Makefile(默认端口 4001)
make run

服务默认在 http://localhost:4000 启动,管理界面访问 /vb/ 路径。

作为库集成
package main

import (
    "github.com/veypi/vbase"
    "github.com/veypi/vigo"
)

var Router = vigo.NewRouter()

func init() {
    // 挂载 VBase 路由到 /vb 前缀
    Router.Extend("/vb", vbase.Router)
}

更多集成方式请参考 集成指南。

项目结构

vbase/
├── api/           # REST API 接口层
│   ├── auth/      # 认证接口(登录、注册、Token 刷新)
│   ├── oauth/     # OAuth2 Provider 接口
│   ├── role/      # 角色管理
│   └── user/      # 用户管理
├── auth/          # 核心权限控制模块(Scoped RBAC 实现)
├── cfg/           # 配置管理
├── cli/           # 命令行入口
├── models/        # 数据模型(GORM)
├── ui/            # 前端管理界面(vhtml)
└── docs/          # 文档

Documentation

Index

Constants

View Source
const Version = "v1.1.1"

Variables

View Source
var (
	NewAuth = auth.Factory.New
	Config  = cfg.Global
)
View Source
var Router = vigo.NewRouter()

Functions

func Init

func Init() error

Types

type Options

type Options = cfg.Options

Directories

Path Synopsis
api
libs
jwt
sms
webdav
Package webdav provides a WebDAV server implementation.
Package webdav provides a WebDAV server implementation.
webdav/internal/xml
Package xml implements a simple XML 1.0 parser that understands XML name spaces.
Package xml implements a simple XML 1.0 parser that understands XML name spaces.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL