authentication - GO中的用户认证系统

标签 authentication go

<分区>

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

我有 Ruby 背景,我真的很想看到类似于 Ruby on Rails 的 device 的东西这是一个完整的用户管理系统。它负责从创建表单到散列和加盐密码的所有工作。它还负责将数据存储到数据库、设置 session 等。

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

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

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

我寻求的解决方案很可能是 Go 网络框架的一部分或插件。

背景

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

最佳答案

简短的回答:没有。

长答案:Ruby on Rails 是一个框架,Go 是一种语言。为 Go 制作一个“通用”身份验证系统将是一项艰巨的任务,并且/或者必须非常在设计上固执己见,因为大多数身份验证系统都依赖于 session 存储和/或数据库。 Rails 可以做到这一点(使用库。如 Devise),因为框架的某些部分(如 ActiveRecord 和 ActionController)提供了 Devise 可以与之对话的抽象 API。

在大多数情况下,您需要将几个库结合在一起以获得您需要的 Go 语言。将事物“粘合”在一起是通常首选的做事方式,而单体/厨房水槽框架通常不受青睐。

对图书馆的一些建议:

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

关于authentication - GO中的用户认证系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29095603/

相关文章:

go - 这段代码中/static/是什么意思?

python - 如何通知用户他在 Django 登录 View 中不活动

asp.net-mvc - 在 ServiceStack 服务上进行身份验证后访问客户端上的 AuthSession

c# - 使用 ServiceStack 使用 REST web 服务时的用户身份验证

azure - 我应该在生产环境中使用 Azure AD SAML 工具包吗?

http - 结合 string 和 []byte 作为 payload

for-loop - 已声明但未使用的变量

javascript - 基本 "Get Variable Value"使用 GopherJS

ruby-on-rails - 我需要简单但完整的说明来实现设计身份验证策略

go - 使用 sync.WaitGroup 时获取 "fatal error: all goroutines are asleep - deadlock!"