Примерно месяц назад у меня был проект, прекрасно работающий с ASP Identity OAuth. Я отправил запрос POST в конечную точку /Token с параметром grant_type, именем пользователя и паролем, и все было dandy.
Недавно я начал новый проект, основанный на шаблоне SPA-студии Visual Studio 2013 RC2. Это немного отличается от старого шаблона. Аутентификация настроена на довольно простые значения по умолчанию,
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
//AuthorizeEndpointPath = new PathString("/Account/Authorize"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true
};
Ничего существенного не изменилось из шаблона по умолчанию. Я могу успешно зарегистрировать учетные записи с помощью метода контроллера веб-API, который я реализовал;
// POST: /Account/Register
[HttpPost]
[AllowAnonymous]
public async Task<IHttpActionResult> Register(RegisterBindingModel model)
{
if (ModelState.IsValid)
{
var user = new TunrUser() { UserName = model.Email, Email = model.Email, DisplayName = model.DisplayName };
var result = await UserManager.CreateAsync(user, model.Password);
if (result.Succeeded)
{
return Created(new Uri("/api/Users/" + user.Id,UriKind.Relative), user.toViewModel());
}
else
{
return BadRequest(result.Errors.First());
}
}
return BadRequest(ModelState);
}
Однако, независимо от того, что я отправил на конечную точку /Token, я всегда получаю тот же ответ.
{"error":"invalid_client"}
Обычно я передаю следующий тело запроса
grant_type=password&username=user%40domain.com&password=userpassword
Но это приводит к той же ошибке. Это работало в предыдущем шаблоне SPA/Identity VS2013. Что изменилось?
Спасибо!