Golang Go语言「Goravel 上新」用户授权模块,让你简单的对非法用户 Say No!

发布于 1周前 作者 songsunli 来自 Go语言

首先,让我们定义一个规则:用户只能访问自己创建的文章。

facades.Gate.Define("update-post", func(ctx context.Context, arguments map[string]any) *access.Response {
  user := ctx.Value("user").(models.User)
  post := arguments["post"].(models.Post)

if user.ID == post.UserID { return access.NewAllowResponse() } else { return access.NewDenyResponse(“error”) } })

然后判断单个权限:

if facades.Gate.Allows("update-post", map[string]any{
  "post": post,
}) {
  // todo
}

你也可以同时判断多个权限:

if facades.Gate.Any([]string{"update-post", "delete-post"}, map[string]any{
  "post": post,
}) {
  // 用户可以提交 update 或 delete...
}

if facades.Gate.None([]string{“update-post”, “delete-post”}, map[string]any{ “post”: post, }) { // 用户不可以提交 update 和 delete… }

你甚至可以定义 BeforeAfter 进行授权前后的拦截,详见文档。 Over, 就是如此简单!

关于 Goravel

Goravel 是一个功能完备、具有良好扩展能力的 Web 应用程序框架。作为一个起始脚手架帮助 Golang 开发者快速构建自己的应用。

框架风格与 Laravel 保持一致,让 PHPer 不用学习新的框架,也可以愉快的玩转 Golang !致敬 Laravel !

Welcome star, PR and issues !


Golang Go语言「Goravel 上新」用户授权模块,让你简单的对非法用户 Say No!

更多关于Golang Go语言「Goravel 上新」用户授权模块,让你简单的对非法用户 Say No!的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html

1 回复

更多关于Golang Go语言「Goravel 上新」用户授权模块,让你简单的对非法用户 Say No!的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


针对您提到的Golang Go语言「Goravel 上新」用户授权模块,这一更新无疑为开发者们提供了一个高效且简洁的用户权限管理工具。以下是对此更新的专业解读:

Goravel作为Go语言生态中一个备受关注的框架,一直致力于为开发者提供便捷、高效的开发体验。此次上新的用户授权模块,正是针对Web应用中常见的用户权限管理问题而设计的。

在Web开发中,确保只有合法用户才能访问特定资源是至关重要的。Goravel的用户授权模块通过集成简洁的API和直观的配置选项,使得开发者能够轻松实现对用户权限的细粒度控制。无论是基于角色的访问控制(RBAC)还是基于声明的访问控制(ABAC),该模块都能提供灵活的支持。

此外,该模块还具备以下优点:

  1. 易用性:通过简单的配置和调用,即可实现对用户权限的快速管理。
  2. 安全性:采用先进的加密技术和验证机制,确保用户授权过程的安全性。
  3. 可扩展性:支持自定义权限规则和策略,满足复杂业务场景的需求。

总的来说,Goravel上新的用户授权模块为Go语言开发者提供了一个强大的工具,使得在开发过程中能够更专注于业务逻辑的实现,而无需为繁琐的用户权限管理问题所困扰。这一更新无疑将进一步提升Goravel在Go语言生态中的地位,吸引更多开发者加入其中。对于需要实现用户权限管理的Go项目来说,Goravel无疑是一个值得考虑的选择。

回到顶部