是否有提供固定用户身份验证支持的Go框架或程序包?

Sol*_*oub 16 authentication go

我已经得到了通过在Python(Django的/瓶)提供的成熟的框架很溺爱,使我开始学围棋,我想知道是否有任何类似的框架已经存在,在进入django.contrib.auth或烧瓶登录?

主要用例是处理简单的用户身份验证,并能够扩展它以适应应用程序中的一些基于权限的路由.

Kyl*_*ons 24

据我所知,没有.您可能获得的最接近开箱即用的身份验证是通过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.