无法在Owin和Identity RTM中使“UseOAuthBearerTokens”工作

4

我使用

 app.UseOAuthBearerTokens(OAuthOptions);

并且

var options = new OAuthAuthorizationServerOptions
{

    TokenEndpointPath = new Microsoft.Owin.PathString("/Token"),
    AuthorizeEndpointPath = new Microsoft.Owin.PathString("/api/Account/ExternalLogin"),
    Provider = new ApplicationOAuthProvider<CampusDaysUser>(PublicClientId, IdentityManagerFactory, CookieOptions)
};

但是该URL http://example.com/Token/ 返回错误信息:

无法找到该资源。

1个回答

5
    OAuthOptions = new OAuthAuthorizationServerOptions
    {
        TokenEndpointPath = new Microsoft.Owin.PathString("/Token"),
        AllowInsecureHttp = true,
        AuthorizeEndpointPath = new Microsoft.Owin.PathString("/api/Account/ExternalLogin"),
        Provider = new ApplicationOAuthProvider<CampusDaysUser>(PublicClientId, IdentityManagerFactory, CookieOptions)
    };

现在需要设置允许 http 才能使其工作。请阅读注释,这应该只在开发环境下完成。生产环境中,您应该获取证书并使用 SSL。


这不是一个危险的建议吗?如果我理解正确,这允许未经保护的通信获取令牌,我无法想象这对安全有好处。 - angularsen
1
AllowInsecureHttp仅用于开发目的。在生产系统中,建议使用SSL以确保令牌不会明文传递。 - Joe Brinkman
Joe说的没错。我会更新我的答案,也会说明这一点。我只是需要它在开发中能够工作。 - Poul K. Sørensen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接