【问题标题】:API Architecture for User Accounts用户帐户的 API 架构
【发布时间】:2015-02-22 17:04:49
【问题描述】:

我目前正在开发一个副项目,其中将包括一个数据库、Web API,然后是顶部的不同应用程序,它们使用 restful API。

我已经开始考虑用户帐户以及如何确保这些帐户的安全。目前,作为标准,我在数据层中有以下模型:

public int Id { get; set; }
public string Username { get; set; } 
public string Full_Name { get; set; }
public string Password { get; internal set; }
public string Salt { get; internal set; }

现在,很明显,当有人请求 /Users/{id} 时,与该 ID 关联的用户将被返回。但是,我不想返回 Password 或 Salt,所以真的不希望它们成为 User 模型的一部分。

我已经考虑过为 UserDetails 创建一个不同的、仅限内部的模型,并将密码/Salt 等发送到该模型中。但是,我在注册服务时遇到了问题,如何从用户那里获得所需的 API 密码?

我想做的事情可能有一个非常简单的实现,但我现在想不出一个。任何帮助将不胜感激!

【问题讨论】:

    标签: rest architecture restful-architecture user-management


    【解决方案1】:

    为此,您应该使用不带密码属性的特殊视图模型。然后在您的 API 中,您将在数据模型和视图模型之间进行映射,并从您的 Web API 方法中返回视图模型。 Salt 属性也是如此。

    【讨论】:

    • 我想到了,并开始实现这个,但是后来我想到了用户将如何在这个架构中注册?任何见解都会很棒:)
    • 您将拥有一个SignupViewModel,其中显然包含密码。您在 API 之外公开的所有内容都是视图模型。您的数据模型保持不变,您只需根据上下文将其投影到各种视图模型。
    猜你喜欢
    • 1970-01-01
    • 2016-10-14
    • 1970-01-01
    • 2016-08-17
    • 2019-12-12
    • 2011-10-03
    • 1970-01-01
    • 2018-08-22
    • 2012-06-21
    相关资源
    最近更新 更多