推荐开源项目:Negroni-authz - 高效的 Negroni 认证授权中间件
Negroni-authz 是一个用于 Go 语言的 Negroni 网络库的高效认证授权中间件。它提供了一个简单的机制来检查 HTTP 请求是否有相应的权限。
以下是如何使用 Negroni-authz 的一个基本示例:
package main
import (
"net/http"
"github.com/urthin/negroni-authz"
"github.com/urthin/negroni-authz/storage"
"github.com/urthin/negroni-authz/storage/mem"
"github.com/codegangsta/negroni"
)
func main() {
// 创建一个内存存储实例来存储角色和权限
store := storage.NewMemStorage()
store.AddRole("admin")
store.AddPolicy("admin", "/admin")
// 创建一个新的 Authz 实例并设置存储
authz := authz.NewAuthz()
authz.SetStorage(store)
// 创建一个 Negroni 实例并添加 Authz 中间件
n := negroni.New()
n.Use(negroni.HandlerFunc(authz.HandlerFuncWithNext))
// 设置一个简单的 HTTP 处理函数
n.UseHandler(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Hello World!"))
}))
// 启动服务器
n.Run(":8080")
}
在这个示例中,我们创建了一个 Negroni 的中间件链,其中包括了 Authz 的中间件。我们还设置了一个简单的 HTTP 处理函数,并且通过 Authz 的存储接口添加了一个角色和权限。
这个示例展示了如何使用 Negroni-authz 来为你的 Go 应用添加基本的权限控制。它非常适合任何需要在其 Web 应用中实现权限管理的开发者。
评论已关闭