Authentication GO中的用户认证系统 Go中是否存在预先制作的用户身份验证系统?

Authentication GO中的用户认证系统 Go中是否存在预先制作的用户身份验证系统?,authentication,go,Authentication,Go,我来自Ruby的背景,我非常希望看到类似RubyonRails的东西,这是一个完整的用户管理系统。它处理从创建表单到散列和添加密码的所有事情。它还负责将数据存储到数据库、设置会话等 我发现有一个名为的包允许社交登录(facebook、twitter++),但它不处理用户凭证的存储。它也不允许使用电子邮件+密码进行“正常”注册 关于Go的这个主题,我能找到的只是一些关于如何创建自己的基本、非常不安全的用户登录系统的教程 我真的很想看到一个能够处理用户身份验证并允许通过OAuth/OAuth2进行社

我来自Ruby的背景,我非常希望看到类似RubyonRails的东西,这是一个完整的用户管理系统。它处理从创建表单到散列和添加密码的所有事情。它还负责将数据存储到数据库、设置会话等

我发现有一个名为的包允许社交登录(facebook、twitter++),但它不处理用户凭证的存储。它也不允许使用电子邮件+密码进行“正常”注册

关于Go的这个主题,我能找到的只是一些关于如何创建自己的基本、非常不安全的用户登录系统的教程

我真的很想看到一个能够处理用户身份验证并允许通过OAuth/OAuth2进行社交登录的系统。有这样的事吗

我想要的解决方案很可能是Go web框架的一部分,或者是一个插件

背景 我正在考虑将我的Rails应用程序转移到一个更高性能的框架中,因为我当前的Rails应用程序正在使用更多的RAM。我的眼睛就这样消失了。然而,没有一个可靠的用户身份验证系统,我无法转换为Go。创建自己的用户身份验证系统不是一个很好的做法。

简短回答:不

详细回答:RubyonRails是一个框架,Go是一种语言。为Go建立一个“通用”身份验证系统将是一项艰巨的任务,而且/或者在设计上必须非常固执己见,因为大多数身份验证系统都依赖于会话存储和/或数据库。Rails可以做到这一点(使用libs.like Desive),因为框架的某些部分,如ActiveRecord和ActionController,提供了Desive可以使用的抽象API

在大多数情况下,您需要将几个库绑定在一起,以获得所需的w/Go。把东西“粘”在一起是一种常用的做事方式,整体式/厨房水槽框架通常不受欢迎

对图书馆的一些建议:

  • (OAuth/OAuth2包)
  • (用户会话)
  • (密码散列)
  • (一个微观框架[思考:Sinatra级别]w/a固体中间件API)
  • (Go标准数据库/sql包的方便包装器)
  • (一个要转到结构库的POST表单)

这些不会为您提供不同的用户类型,也不会为您编写查询,等等。我发现使用服务器端会话、单用户表和包装“需要验证”路由和检查会话的HTTP中间件编写自己的“两个用户级别”(常规和管理)身份验证非常简单,否则它会将用户重新定向到登录页面(并保存当前URL以供重新定向后使用).

感谢您的洞察力。我知道我所要求的需要是某种框架的一部分,或者完全是自己的框架。我知道有一些web框架适用于像revel和beego这样的go。如果其中任何一个都有某种用户授权,那么选择该框架就可以了。我可能想得太多了rubyist,go有一个完全不同的方法来处理事情,但我觉得这是一个非常常见的问题,可以而且应该有一个规范化的解决方案[内置身份验证。由于Beego的安全实践有问题,我会避开它。Revel做的事情与“惯用”Go完全不同,这使得使用一些库变得有点棘手。不过,任何“标准化”的解决方案只适用于单个框架和/或ORM组合。粗略的Google搜索确实会显示一些LIB,它们可能(即,我没有使用它们)填补您的空白()。Rails本身比Go要古老得多,所以这并不奇怪