对于那些在 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 的集成。
梦里花落0921
TA贡献1772条经验 获得超6个赞
在 2018 年回答这个问题。我建议使用 JWT(JSON Web Token)。您标记为已解决的答案有缺点,即它在前面(用户)和后面(服务器/数据库)所做的行程。更糟糕的是,如果用户频繁执行需要身份验证的请求,将导致来自/到服务器和数据库的请求臃肿。为了解决这个问题,使用 JWT 将令牌存储在用户端,用户可以在需要访问/请求时随时使用。无需前往数据库和服务器处理来检查令牌有效性,只需很短的时间。
- 3 回答
- 0 关注
- 207 浏览
添加回答
举报
0/150
提交
取消