Vapor 4 用户身份验证和授权

4

我最近开始使用vapor4(没有使用过任何旧版本),并且正在尝试弄清楚如何实现用户授权和认证。虽然我理解基本概念,之前也用过Laravel,但我仍然不知道在vapor中该怎么做。

我扩展了我的User类,但我知道没有密码哈希,这只是为了测试和基本理解。我们现在先忽略这个问题。

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/。无论如何,我都没能弄清如何使用所述的身份验证器。

1个回答

4

在撰写本文时,我终于弄明白了。无论如何,对于那些遇到问题的人来说,解决方法就是这么简单:

let auth = app.grouped(User.authenticator(), User.guardMiddleware())
auth.get("sign-in") { req in
    "I'm authenticated"
}

默认情况下,您的用户类提供了一个guardMiddleware。您无需实现其他任何内容,只需在路由中使用它即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接