为了账号安全,请及时绑定邮箱和手机立即绑定

配置授权服务器端点

配置授权服务器端点

拉莫斯之舞 2019-09-20 16:58:39
题我们如何使用用户名和密码流在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
提交
取消
意见反馈 帮助中心 APP下载
官方微信