Detect remote denails for Twitter accounts

This commit is contained in:
Chris Ross (ASP.NET) 2017-12-29 15:59:34 -08:00
parent c67cc03b77
commit e13ceb690b
2 changed files with 8 additions and 1 deletions

View File

@ -60,6 +60,12 @@ namespace Microsoft.AspNetCore.Authentication.Twitter
// REVIEW: see which of these are really errors
var denied = query["denied"];
if (!StringValues.IsNullOrEmpty(denied))
{
return HandleRequestResult.Fail("The user denied permissions.", properties);
}
var returnedToken = query["oauth_token"];
if (StringValues.IsNullOrEmpty(returnedToken))
{

View File

@ -195,6 +195,7 @@ namespace Microsoft.AspNetCore.Authentication.Twitter
OnRemoteFailure = context =>
{
Assert.NotNull(context.Failure);
Assert.Equal("The user denied permissions.", context.Failure.Message);
Assert.NotNull(context.Properties);
Assert.Equal("testvalue", context.Properties.Items["testkey"]);
context.Response.StatusCode = StatusCodes.Status406NotAcceptable;
@ -220,7 +221,7 @@ namespace Microsoft.AspNetCore.Authentication.Twitter
var setCookieValue = setCookieValues.Single();
var cookie = new CookieHeaderValue(setCookieValue.Name, setCookieValue.Value);
var request = new HttpRequestMessage(HttpMethod.Get, "/signin-twitter");
var request = new HttpRequestMessage(HttpMethod.Get, "/signin-twitter?denied=ABCDEFG");
request.Headers.Add(HeaderNames.Cookie, cookie.ToString());
var client = server.CreateClient();
var response = await client.SendAsync(request);