如何使用JWT在MVC应用程序中创建标识

时间:2015-02-04 22:50:52

标签: asp.net-mvc-4 oauth-2.0 asp.net-identity-2 jwt

我会尝试明确。

我有一个前端应用程序(MVC),它可以与Facade Web Api(资源)通信并从身份验证服务器获取令牌。

我的问题是我无法在MVC应用中创建身份。这是mu Startup类。

public partial class Startup
{
    public void ConfigureAuth(IAppBuilder app)
    {
        app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
            LoginPath = new PathString("/Account/Login"),
        });

        app.UseOAuthBearerAuthentication(new OAuthBearerAuthenticationOptions 
        {

        });
        app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
        app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(5));
app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);

    }

当我尝试转到使用[Authorize]修饰的方法控制器时,我得到401错误而不是重定向到登录页面。

拜托,我将不胜感激任何帮助,建议或实例。

此致

1 个答案:

答案 0 :(得分:1)

通常,除非您的应用正在进行回发,否则您无需使用登录路径启用Cookie身份验证。这是oauth密码登录流程(grant_type),您可以在内部根据您的身份数据库授权您的用户。如果您正在重定向到外部授权API(如Facebook),那么您不需要在应用程序中设置登录路径,因为被攻击的第一个授权端点是您的外部回调(在您将其发送到之后) Facebook,他们会将它们发送回您的外部端点)。您获得的重定向是因为cookie身份验证被注册为主动身份验证模式,因此它将401重定向到您设置的登录路径(覆盖其他OWIN中间件)。

如果您想在内部存放授权服务器,请查看下面的链接,它至少可以帮助您安装JWT支持 -

http://bitoftech.net/2014/10/27/json-web-token-asp-net-web-api-2-jwt-owin-authorization-server/