Sesión 12 (20 Mayo 2023)
作者 gerardooscarjt
1564 次阅读
Gopress,一个使用Golang的博客(第8部分) 大家好!我们继续关于如何使用Golang(由
Google 创建 且越来越流行的编程语言)构建博客的系列教程。如果你错过了前面的部分,请前往我们之前的文章,并跟上进度。今天,在系列的第八部分中,我们将重点放在身份验证和安全性上。让我们开始吧! 复选框 一 二 三 身份验证与安全性 到目前为止,我们已经创建了具备基本功能的博客Gopress,但尚未实现任何身份验证机制。我们不希望任何人都能在我们的博客上发表、编辑或删除内容。为了防止这种情况,我们需要实现一个身份验证系统。 在Golang中,有多个库可帮助我们进行身份验证,但在本教程中,我们将使用“gorilla/sessions”来处理用户会话,并使用“golang.org/x/crypto/bcrypt”进行密码哈希处理。 使用Gorilla/Sessions实现会话 首先,我们需要 安装 Gorilla Sessions包。如果你使用go modules,可以通过以下命令完成: bashCopy codego get github.com/gorilla/sessions 首先,我们定义一个全局变量来存储会话: goCopy codevar (
key = []byte("super-secret-key")
store = sessions.NewCookieStore(key)
) 完成之后,我们可以实现一个函数,在成功登录后设置会话: goCopy codefunc setSession(userName string, w http.ResponseWriter, r *http.Request) {
session, _ := store.Get(r, "cookie-name")
session.Values["authenticated"] = true
session.Values["username"] = userName
session.Save(r, w)
} 另一个函数用于检查用户是否已认证:...
作者 gerardooscarjt
1865 次阅读