为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
慕码人8056858 2021-11-08 10:15:16
我最近在处理 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 中的一些东西。
查看完整描述

3 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

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


查看完整回答
反对 回复 2021-11-08
?
暮色呼如

TA贡献1853条经验 获得超9个赞

虽然 Oauth2 非常安全并且是一个很好的实现。

用于保护 Web 应用程序的常用程序如下。

用户注册到应用程序并将注册数据发送到后端。服务器处理注册信息。为将来的令牌请求和其他此类请求存储散列的用户密码 创建要传回给用户的访问令牌(通常是 32-64 位)散列访问令牌并将其存储在数据库中以用于认证restful 请求 向用户发送任何需要的数据以及访问令牌。在客户端机器上存储访问令牌(可能使用 localstorage.set() )未来的请求将附加访问令牌以进行身份验证。

始终检查访问令牌是否仍然可以访问,并且它的哈希值与数据库中的哈希值匹配。

其他实现涉及 JWT 等。


查看完整回答
反对 回复 2021-11-08
?
慕桂英546537

TA贡献1848条经验 获得超10个赞

如果您在审查 OAuth 2.0 库方面没有足够的专业知识,那么我建议您使用可靠的第三方 Oauth 即服务提供商。

我知道的一个例子是 Microsoft Azure ACS,您可以将其与您的 golang 应用程序集成,它们将为您处理 OAuth 流程以及身份验证和授权。

您可以在此处阅读它的工作原理。


查看完整回答
反对 回复 2021-11-08
  • 3 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信