Вопрос
Как мы используем токен-носитель с ASP.NET 5 с использованием потока имени пользователя и пароля? Для нашего сценария мы хотим, чтобы пользователь регистрировался и входил в систему с помощью AJAX-вызовов без необходимости использования внешнего входа.
Для этого нам нужно иметь конечную точку сервера авторизации.  В предыдущих версиях ASP.NET мы выполнили следующие действия, а затем запустили бы с адресом ourdomain.com/Token.
// Configure the application for OAuth based flow
PublicClientId = "self";
OAuthOptions = new OAuthAuthorizationServerOptions
{
    TokenEndpointPath = new PathString("/Token"),
    Provider = new ApplicationOAuthProvider(PublicClientId),
    AccessTokenExpireTimeSpan = TimeSpan.FromDays(14)
};
В текущей версии ASP.NET, однако, это не работает. Мы пытались выяснить новый подход. пример aspnet/identity на GitHub, например, настраивает аутентификацию Facebook, Google и Twitter, но не отображает конечную точку сервера внешней авторизации OAuth, если только это не означает, что AddDefaultTokenProviders(), и в этом случае нам интересно, каким будет URL-адрес провайдера.
Исследование
Мы узнали из чтения источника здесь, что мы можем добавить "промежуточное ПО аутентификации на предъявителя" в конвейер HTTP, вызвав IAppBuilder.UseOAuthBearerAuthentication в нашем классе Startup, Это хорошее начало, хотя мы все еще не уверены в том, как установить конечную точку маркера. Это не помогло:
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 мы просто получаем нашу всемирную страницу приветствия.
Дальнейшие исследования показали, что мы также можем использовать метод расширения 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 нет ошибки, мы снова вернем нашу всемирную страницу приветствия.