我正在Golang中构建一个Web应用程序,目前我正在努力使用身份验证/授权机制。
我想将此应用程序部署到不同的平台(浏览器,机器人等)。为了达到这个目的,我选择使用oauth 2.0,即这个lib:https://github.com/golang/oauth2。
我面临的问题是如何使用我自己的数据库和用户实现这一目标。 lib有一个jwt包(https://github.com/golang/oauth2/tree/master/jwt),还有一个包clientcredentials(https://github.com/golang/oauth2/blob/master/clientcredentials/clientcredentials.go),可以用于2脚的Oauth 2.0,但我不知道如何实现这个,并且可以'找到任何显示它的例子。我应该使用哪个包裹?当用户使用http://example.domain/login的凭据发送POST时,应设置令牌。
有人可以给我一些提示/给我一个简单的例子吗?
答案 0 :(得分:0)
您是否研究过ory/hydra等解决方案,它将处理与OAuth2 / OpenID相关的所有内容并让您处理用户身份验证?
实施您自己的OAuth2提供商是危险的领域。它只需要一个误读的RFC和BOOM!安全漏洞。通常情况下,将责任委托给已建立的安全专家或持久项目,而不是本土补救措施。
当然,并不是说每个人都需要跳上炒作列车并使用这个很酷的新软件。事实上,我会强烈反对:如果您是一位称职的安全分析师,并且愿意编写OAuth2 / OpenID Connect实现,请立即行动!但是,在我们三十岁之前不想让头发变灰的普通人会利用现有的技术来为我们带来优势。