我最近开始使用vapor4(未使用任何旧版本),并且试图找出如何实现用户授权和认证的方法。虽然我了解基本概念,但是在我还没弄清楚该怎么做之前,与Laravel一起工作过。
我扩展了我的用户。IK没有pw哈希,这是用于测试和基本理解的。我们暂时将其忽略。
extension User: ModelAuthenticatable
{
static let usernameKey = \User.$name
static let passwordHashKey = \User.$password
func verify(password: String) throws -> Bool {
return password == self.password
}
}
问题是我找不到如何使用此身份验证的教程。我只是尝试一些东西使其工作,但没有成功。这是在我的路线文件中。
let auth = app.grouped(User.authenticator())
auth.get("sign-in") { req in
"I'm authenticated"
}
我的第一个目标就是尝试此路线时获得成功或失败的答案。最终,我想切换到基于令牌的解决方案,但一次只需要一步。
我读到的东西是:https : //docs.vapor.codes/4.0/authentication/和https://theswiftdev.com/all-about-authentication-in-vapor-4/。无论如何,我无法退出,弄清楚如何使用所描述的身份验证器。
在写这篇文章的时候,我终于明白了。无论如何,人们都对此绊脚石。就这么简单:
let auth = app.grouped(User.authenticator(), User.guardMiddleware())
auth.get("sign-in") { req in
"I'm authenticated"
}
您的用户类别guardMiddleware
默认提供一个。您无需执行其他任何操作,只需在您的路由中使用它即可。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句