Vapor 4 用户认证与授权
Vapor 4 User Authentication and Authorisation
我最近开始使用 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/ and 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"
}
您的用户-class 默认提供guardMiddleware
。您不必执行任何其他操作,只需在您的路线中使用它即可。
我最近开始使用 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/ and 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"
}
您的用户-class 默认提供guardMiddleware
。您不必执行任何其他操作,只需在您的路线中使用它即可。