如何在产品环境中保护我的 GO REST 服务?

我最近在处理 Go REST 服务,但我不知道是否有任何生产就绪的 OAUTH2 服务器可用?

由于我的服务将由单页 Web 应用程序和移动客户端使用,并且用户应该能够注册他们的帐户,因此我正在考虑使用 OAUTH2 服务器。

我一直在四处寻找,发现标准包只包含客户端代码https://github.com/golang/oauth2/blob/master/oauth2.go

Go 中有一个 OAUTH2 服务器(https://github.com/RangelReale/osin),但我没有太多的专业知识来审查它。

因此,有哪些可用于生产应用程序的选项?由于 nodejs 的成熟度,我是否应该使用以其他技术(如 nodejs)实现的 OAUTH 服务器?

编辑:在 .Net 空间中有一个服务器实现在https://github.com/identityserver/IdentityServer3

但是,我更喜欢 GO 中的一些东西。


慕码人8056858
浏览 165回答 3
3回答

烙印99

在我提出这个问题之后,CoreOS 在https://github.com/coreos/dex 上发布了“dex”作为开源 OpenID 提供者

暮色呼如

虽然 Oauth2 非常安全并且是一个很好的实现。用于保护 Web 应用程序的常用程序如下。用户注册到应用程序并将注册数据发送到后端。服务器处理注册信息。为将来的令牌请求和其他此类请求存储散列的用户密码 创建要传回给用户的访问令牌(通常是 32-64 位)散列访问令牌并将其存储在数据库中以用于认证restful 请求 向用户发送任何需要的数据以及访问令牌。在客户端机器上存储访问令牌(可能使用 localstorage.set() )未来的请求将附加访问令牌以进行身份验证。始终检查访问令牌是否仍然可以访问,并且它的哈希值与数据库中的哈希值匹配。其他实现涉及 JWT 等。

慕桂英546537

如果您在审查 OAuth 2.0 库方面没有足够的专业知识,那么我建议您使用可靠的第三方 Oauth 即服务提供商。我知道的一个例子是 Microsoft Azure ACS,您可以将其与您的 golang 应用程序集成,它们将为您处理 OAuth 流程以及身份验证和授权。您可以在此处阅读它的工作原理。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go