如何使用 JWT 在 MVC 应用程序中创建身份

How to create identity in MVC app with JWT

我会尽量明确。

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

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

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 错误,而不是被重定向到登录页面。

拜托,如果有任何帮助、建议或示例,我将不胜感激。

此致,

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

如果您想在内部安装您的授权服务器,请查看下面的 link,它至少会让您设置 JWT 支持 -

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