我在Web API 2项目中使用ASP.NET Identity。我目前使用以下示例使用用户名和密码进行身份验证并运行正常:
grant_type=password&username=alice%40example.com&password=Password1!
这很好。
现在,我的服务可以从移动应用程序调用,我想让用户可以使用密码登录。我已经向用户表添加了两个额外字段(密码和设备ID),并扩展了UserStore,以便能够根据此信息检索用户。
我的问题是如何让用户提供密码?我需要他们能够使用密码或密码登录,所以我想发送以下密码:
grant_type=passcode&username=alice%40example.com&passcode=1234&deviceid=abcdef
并且根据grant_type,我可以通过密码或密码查询用户存储。但是,这会引发错误(unsupported_grant_type
)并快速搜索,看起来这些是预定义值,因此我无法添加新值?
我可以添加新的grant_type
,还是必须坚持password
并在帖子数据中添加一个字段,说明它是否有密码?
谢谢
答案 0 :(得分:1)
添加另一个grant_type
似乎不是一个主要问题。但有:合规。每个OAuth端点都有一组特定的允许grant_type
。如果你添加另一个,你实际上绕过了标准,这将导致其他人实现它的问题。