GO中的用户认证系统

Aut*_*ico 5 authentication go

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

我来自Ruby背景,我真的希望看到类似于Ruby on Rails 设备的东西,这是一个完整的用户管理系统.它负责从创建表单到散列和salting密码等所有内容.它还负责将数据存储到数据库,设置会话等.

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

我似乎在Go的这个主题上找到了一些有关如何创建自己的基本,非常不安全的用户登录系统的教程.

我真的很想看到一个系统,它负责用户身份验证,并允许通过OAuth/OAuth2进行社交登录.有这样的事吗?

我追求的解决方案很可能是Go Web框架的一部分或插件.

背景

我正在考虑将我的Rails应用程序转移到更高性能的框架,因为我当前的rails应用程序正在使用大量RAM.于是我的目光转向了Go.但是,如果没有可靠的用户身份验证系统,我无法转换为Go.制作自己的用户身份验证系统不是一个很好的做法.

eli*_*rar 7

简答:不.

答案很简单:Ruby on Rails是一个框架,Go是一种语言.为Go制作"通用"认证系统将是一项艰巨的任务和/或必须非常注重设计,因为大多数auth系统依赖于会话存储和/或数据库.Rails可以这样做(使用libs.比如Devise),因为像ActiveRecord和ActionController这样的框架部分提供了一个Devise可以与之交谈的抽象API.

在大多数情况下,您需要将几个库连接起来以获得您需要的Go.将事物粘合在一起是一种常用的做事方式,单片/厨房水槽框架通常不受青睐.

对图书馆的一些建议:

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