在ASP.NET标识中添加新的grant_type



我正在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,并在帖子数据中添加一个额外的字段,说明它是否是密码?

感谢

添加另一个grant_type似乎不是什么大问题。但也有:合规性。每个OAuth端点都有一组特定的允许的grant_type s。如果你添加另一个,你实际上绕过了标准,这将导致其他实现它的人出现问题。

相关内容

  • 没有找到相关文章

最新更新