首页 > 解决方案 > 无法理解渡槽自动生成的数据库和身份验证

问题描述

我使用创建了一个 Aqueduct 项目,aqueduct create -t db_and_auth但我不明白如何使用 OAuth 2.0 进行注册和身份验证。有人可以解释如何从 aqueduct 自动创建的 OAuth2.0 和 DB 模板进行注册,以及我必须执行哪些步骤来注册然后进行身份验证?

标签: oauthoauth-2.0dartaqueduct

解决方案


在客户端应用程序中,您POST /register使用包含用户的 JSON 有效负载。根据您拥有的模板版本,这可能只是{"username": "bob", "password": "password"}- 检查您的_User类型的定义。

当您验证一个已经存在的用户时,您调用POST /auth/token并传递用户名、密码和其他必填字段作为 x-www-form-urlencoded 数据。该请求的格式 - 用 Dart 代码编写 - 在这里:http ://aqueduct.io/docs/auth/controllers/ 。

无论您是注册新用户还是验证现有用户,您都必须提供客户端标识符(以及可选的客户端密码)作为基本授权标头。客户端标识符必须已经在您的应用程序中注册并存储在其数据库中。

要将客户端标识符存储在数据库中,您需要首先在数据库实例上运行应用程序的数据库迁移(请参阅http://aqueduct.io/docs/db/db_tools/以了解运行数据库迁移)。这将创建表来存储 OAuth 2.0 客户端标识符和令牌。

然后,您需要将 OAuth2.0 客户端标识符添加到您的数据库中。这最好使用aqueduct authCLI 完成,这里有关于它的文档:http: //aqueduct.io/docs/auth/cli/


推荐阅读