在DotNetOpenAuth中实现自定义授权类型

时间:2015-06-17 11:39:01

标签: c# oauth-2.0 dotnetopenauth

使用DotNetOpenAuth,我们已在授权服务器上成功实施了多种标准OAuth 2.0授权类型。

我们现在想要实现自定义grant_type,最好不要修改DotNetOpenAuth源本身。

我可以像这样手动处理它:

public async Task<ActionResult> Token()
{
    if (Request["grant_type"] == "my_custom_grant")
    {
        if(InvalidClientCredentials)
            return ErrorJson();

        var user = FindUserWithSpecialCode(Request["special_code"]);

        if (client.IsAlreadyAuthorizedForUser(user))
            return Json(new { access_token = "", token_type = "bearer", expires_in = 1800 });
        else
            return ErrorJson();
    }

    HttpResponseMessage response = await AuthorizationServer.HandleTokenRequestAsync(Request, Response.ClientDisconnectedToken);
    return response.AsActionResultMvc5();
}

但它有点hacky而且我担心安全问题。

我见过其他OAuth库支持自定义授权类型,但DotNetOpenAuth可以实现吗?

0 个答案:

没有答案