Circa un mese fa ho avuto un progetto perfettamente funzionante con ASP identità OAuth. Mi piacerebbe inviare una richiesta POST per l'endpoint/Token con grant_type, il nome utente e la password, e tutto era da dandy.ricevendo sempre errore 'invalid_client' quando postando/endpoint provvisoria con ASP Identità 2
Recentemente ho iniziato un nuovo progetto in base al largo di Visual Studio 2013 modello SPA RC2. È un po 'diverso dal vecchio modello. L'autenticazione è impostato per default piuttosto semplice,
OAuthOptions = new OAuthAuthorizationServerOptions
{
TokenEndpointPath = new PathString("/Token"),
//AuthorizeEndpointPath = new PathString("/Account/Authorize"),
Provider = new ApplicationOAuthProvider(PublicClientId),
AccessTokenExpireTimeSpan = TimeSpan.FromDays(14),
AllowInsecureHttp = true
};
Niente di significativo è cambiato dal modello predefinito. Posso registrare gli account con successo attraverso un metodo di controllo API Web che ho implementato;
// 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);
}
Tuttavia, non importa quello che post per l'endpoint/Token, ho sempre ottenere la stessa risposta.
{"error":"invalid_client"}
Normalmente passaggio seguente corpo della richiesta
grant_type=password&username=user%40domain.com&password=userpassword
Ma questo si traduce nello stesso errore. Questo ha funzionato nel precedente modello/identità di VS2013 SPA. Cosa è cambiato?
Grazie!
quando si modifica la ValidateClientAuth, si hanno anche per chiamare context.Validated(); perché funzioni. –