当前位置:  开发笔记 > 编程语言 > 正文

使用oauth2和AngularJS在Web API中向令牌发送附加参数

如何解决《使用oauth2和AngularJS在WebAPI中向令牌发送附加参数》经验,为你挑选了1个好方法。

我有一个用AngularJS编写的应用程序,通过oauth 2联系Web API进行身份验证.所有内容都适用于该核心部分,但我需要传入其他参数来评估登录(clientID)并设置记住我的类型功能(记住).

从Angular方面来看,它看起来像这样:

    var data = "grant_type=password&username=" + form.username + "&password=" + form.password + "&clientID=" + clientID + "&remember=" + form.remember;

    var deferred = $q.defer();

    $http.post(serviceBase + 'token', data, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).success(function (response) {

一旦我通过Startup.cs和SimpleAuthorizationServerProvider.cs处理令牌,任何想法都是捕获这些值的最佳方法吗?谢谢



1> Kévin Chalet..:

使用时GrantResourceOwnerCredentials,您可以从中检索OWIN请求OAuthGrantResourceOwnerCredentialsContext并通过调用提取所需的自定义参数ReadFormAsync().

public override async Task GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context)
{
    var form = await context.Request.ReadFormAsync();

    if (string.Equals(form["remember"], "true", StringComparison.OrdinalIgnoreCase))
    {
        // Add custom logic to handle the "remember me" case.
    }
}

也就是说,通常不鼓励添加自定义(即非标准)参数,特别是如果它们是强制性的.请注意,您不需要使用自定义clientID参数,因为已经存在标准等效项:client_id.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有