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

是否有提供预制用户身份验证支持的 Go 框架或包?

是否有提供预制用户身份验证支持的 Go 框架或包?

Go
largeQ 2021-06-03 05:04:28
我已经被 Python (Django/Flask) 中可用的成熟框架宠坏了,所以当我开始学习 Go 时,我想知道 Go to django.contrib.auth 中是否已经存在任何类似的框架或烧瓶登录?主要用例是处理简单的用户身份验证,并能够对其进行扩展以适应应用程序内的一些基于权限的路由。
查看完整描述

2 回答

?
喵喔喔

TA贡献1735条经验 获得超5个赞

据我所知,没有。您可能获得的最接近的开箱即用身份验证是通过 Google AppEngine,其中可以检索用户的 Google 帐户,并且某些路径的范围仅限于应用程序管理员

在标准的 Go Web 服务器中,您通常需要滚动自己的身份验证,但这并不像听起来那么困难。许多框架将您与实际上非常重要的决策隔离开来;在典型的 Go 时尚中,您需要根据应用程序的需求做出这些决定,然后选择适合您的现有库。

登录页面

无论您需要用户在何处登录,您都可能会使用 HTML 表单。这些通常会使用html/template包呈现。要在提交表单时检索值,请使用request.FormValue

数据库

有多种方法可以存储用户信息;在使用os的文件系统或使用database/sql的 SQL 数据库中。一些 NoSQL 数据库也有成熟的驱动程序,包括MongoDBRedis

密码

要计算哈希值并将其与密码进行比较,您需要使用预先存在的机制,这样您就不必自己重新发明它。为此,go.crypto 子存储库提供了一个bcrypt包。

会话

如果你想存储会话数据,你可以使用像gorilla/sessions这样的解决方案。根据您的安全需求,您可以将会话数据直接存储在(可选受保护的)cookie 中,或者您可以将其存储在后端,并且只在 cookie 中存储会话 ID。


查看完整回答
反对 回复 2021-06-07
  • 2 回答
  • 0 关注
  • 175 浏览
慕课专栏
更多

添加回答

举报

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