题我们如何使用用户名和密码流在ASP.NET 5中使用持票令牌?对于我们的场景,我们希望让用户使用AJAX调用进行注册和登录,而无需使用外部登录。为此,我们需要一个授权服务器端点。在以前的ASP.NET版本中,我们将执行以下操作,然后在ourdomain.com/TokenURL上登录。// Configure the application for OAuth based flowPublicClientId = "self";OAuthOptions = new OAuthAuthorizationServerOptions{ TokenEndpointPath = new PathString("/Token"), Provider = new ApplicationOAuthProvider(PublicClientId), AccessTokenExpireTimeSpan = TimeSpan.FromDays(14)};但是,在当前版本的ASP.NET中,上述操作无效。我们一直试图找出新的方法。例如,GitHub上的aspnet / identity示例配置了Facebook,Google和Twitter身份验证,但似乎没有配置非外部OAuth授权服务器端点,除非这样AddDefaultTokenProviders()做,在这种情况下我们想知道到底是什么URL提供者会。研究我们从阅读源代码中了解到,我们可以通过调用IAppBuilder.UseOAuthBearerAuthentication我们的Startup类来向HTTP管道添加“承载认证中间件” 。虽然我们仍然不确定如何设置其令牌端点,但这是一个良好的开端。这不起作用:public void Configure(IApplicationBuilder app){ app.UseOAuthBearerAuthentication(options => { options.MetadataAddress = "meta"; }); // if this isn't here, we just get a 404 app.Run(async context => { await context.Response.WriteAsync("Hello World."); });}要去ourdomain.com/meta我们刚刚收到我们的Hello World页面。进一步的研究表明,我们也可以使用IAppBuilder.UseOAuthAuthentication扩展方法,并且它需要一个OAuthAuthenticationOptions参数。该参数具有TokenEndpoint属性。因此,虽然我们不确定我们在做什么,但我们尝试了这一点,当然这不起作用。public void Configure(IApplicationBuilder app){ app.UseOAuthAuthentication("What is this?", options => { options.TokenEndpoint = "/token"; options.AuthorizationEndpoint = "/oauth"; options.ClientId = "What is this?"; options.ClientSecret = "What is this?"; options.SignInScheme = "What is this?"; options.AutomaticAuthentication = true; }); // if this isn't here, we just get a 404 app.Run(async context => { await context.Response.WriteAsync("Hello World."); });}换句话说,在去ourdomain.com/token,没有错误,只有我们的问候世界页面。
2 回答
- 2 回答
- 0 关注
- 678 浏览
添加回答
举报
0/150
提交
取消