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

人们如何在 Go 中管理身份验证?

人们如何在 Go 中管理身份验证?

Go
眼眸繁星 2021-08-10 09:53:52
对于那些在 Go 中构建 RESTful API 和 JS 前端应用程序的人,您如何管理身份验证?您是否使用任何特定的库或技术?我很惊讶地发现关于这个的讨论很少。每个人都单独编写自己的解决方案吗?
查看完整描述

3 回答

?
湖上湖

TA贡献2003条经验 获得超2个赞

您将使用中间件进行身份验证。


您可以尝试使用go-http-auth进行基本和摘要式身份验证,并尝试使用 gomniauth进行 OAuth2。


但是如何进行身份验证实际上取决于您的应用程序。


身份验证将状态/上下文引入您的 http.Handlers 中,最近对此进行了一些讨论。


上下文问题的众所周知的解决方案是这里描述的gorilla/context和google context。


我做了一个更通用的解决方案,不需要go-on/wrap中的全局状态,可以一起使用或不使用其他两个,并且很好地与上下文无关中间件集成。


wraphttpauth提供了 go-http-auth 与 go-on/wrap 的集成。


查看完整回答
反对 回复 2021-08-10
?
梦里花落0921

TA贡献1772条经验 获得超6个赞

在 2018 年回答这个问题。我建议使用 JWT(JSON Web Token)。您标记为已解决的答案有缺点,即它在前面(用户)和后面(服务器/数据库)所做的行程。更糟糕的是,如果用户频繁执行需要身份验证的请求,将导致来自/到服务器和数据库的请求臃肿。为了解决这个问题,使用 JWT 将令牌存储在用户端,用户可以在需要访问/请求时随时使用。无需前往数据库和服务器处理来检查令牌有效性,只需很短的时间。


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

添加回答

举报

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