Compare commits

..

11 Commits

Author SHA1 Message Date
Tommy Parnell
d5d7c19a30 bump version 2018-06-12 21:58:07 -04:00
Tommy Parnell
05cd9a4fab Merge pull request #239 from pdsrebelo/master
Add a Request Prefix to Options so that we don't rely always on Request.Scheme or Request.Host.
2018-06-12 21:57:30 -04:00
Pedro Rebelo
b4447fa319 Little fix on the logic of the last commit. 2018-06-04 16:49:34 +01:00
Pedro Rebelo
c9dd2cc062 Add a Request Prefix to TwitchAuthenticationOptions so that we don't rely always on Request.Scheme or Request.Host. 2018-06-04 16:33:07 +01:00
Tommy Parnell
22c830dbfb bump version 2018-05-01 19:51:22 -04:00
Tommy Parnell
06457050a8 Merge pull request #236 from JPRuskin/patch-1
Update Steam OpenID Regex to handle HTTPS
2018-05-01 19:50:30 -04:00
James Ruskin
35ea1c9d79 Update Steam OpenID Regex to handle HTTPS
Steam have updated their implementation to return https URIs in claimedID (please see [this thread](https://www.reddit.com/r/Steam/comments/8a7gsu/steam_openid_broken_for_many_websites_fix_inside/)).

The current version of the `_accountIDRegex` does not handle this.

This change should fix this. Arguably, we should not include the option to accept http, as Steam have (seemingly) irrevocably changed this.

This should solve [Issue #234](https://github.com/TerribleDev/OwinOAuthProviders/issues/234).
2018-04-30 11:49:04 +01:00
Tommy Parnell
900c80a98f bump version 2018-04-01 02:25:35 -04:00
Wouter Van Speybroeck
f60e8b5ffa NameIDentifier should use Id from context instead of username (#232) 2018-04-01 02:25:11 -04:00
Tommy Parnell
c74cd15808 bump version 2018-03-06 21:24:46 -05:00
imaleksandr
26a690060a The "v" parameter with version number becomes obligatory for all API requests. An error will be returned if the parameter is not sent. (#228) 2018-03-06 21:24:17 -05:00
8 changed files with 34 additions and 15 deletions

View File

@@ -15,7 +15,7 @@ PACKAGES = File.expand_path("packages")
TOOLS = File.expand_path("tools")
NUGET = File.expand_path("#{TOOLS}/nuget")
NUGET_EXE = File.expand_path("#{TOOLS}/nuget/nuget.exe")
@version = "2.20.0"
@version = "2.24.0"
PROJECTS = Dir.glob('src/*').select{|dir| File.directory? dir }
desc 'Retrieve things'

View File

@@ -105,7 +105,7 @@ namespace Owin.Security.Providers.Discord
};
if (!string.IsNullOrEmpty(context.Id))
{
context.Identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, context.UserName, XmlSchemaString, Options.AuthenticationType));
context.Identity.AddClaim(new Claim(ClaimTypes.NameIdentifier, context.Id, XmlSchemaString, Options.AuthenticationType));
}
if (!string.IsNullOrEmpty(context.UserName))
{

View File

@@ -10,7 +10,7 @@ namespace Owin.Security.Providers.Steam
{
internal sealed class SteamAuthenticationHandler : OpenIDAuthenticationHandlerBase<SteamAuthenticationOptions>
{
private readonly Regex _accountIDRegex = new Regex(@"^http://steamcommunity\.com/openid/id/(7[0-9]{15,25})$", RegexOptions.Compiled);
private readonly Regex _accountIDRegex = new Regex(@"^https?://steamcommunity\.com/openid/id/(7[0-9]{15,25})$", RegexOptions.Compiled);
private const string UserInfoUri = "http://api.steampowered.com/ISteamUser/GetPlayerSummaries/v0002/?key={0}&steamids={1}";

View File

@@ -60,8 +60,7 @@ namespace Owin.Security.Providers.Twitch
return new AuthenticationTicket(null, properties);
}
var requestPrefix = Request.Scheme + "://" + Request.Host;
var redirectUri = requestPrefix + Request.PathBase + Options.CallbackPath;
var redirectUri = GetRequestPrefix() + Request.PathBase + Options.CallbackPath;
// Build up the body for the token request
var body = new List<KeyValuePair<string, string>>
@@ -146,9 +145,7 @@ namespace Owin.Security.Providers.Twitch
if (challenge == null) return Task.FromResult<object>(null);
var baseUri =
Request.Scheme +
Uri.SchemeDelimiter +
Request.Host +
GetRequestPrefix() +
Request.PathBase;
var currentUri =
@@ -237,5 +234,12 @@ namespace Owin.Security.Providers.Twitch
return context.IsRequestCompleted;
}
private string GetRequestPrefix()
{
return !String.IsNullOrEmpty(Options.RequestPrefix)
? Options.RequestPrefix
: Request.Scheme + Uri.SchemeDelimiter + Request.Host;
}
}
}

View File

@@ -125,6 +125,11 @@ namespace Owin.Security.Providers.Twitch
/// </summary>
public bool ForceVerify { get; set; }
/// <summary>
/// Gets or sets the Request prefix
/// </summary>
public string RequestPrefix { get; set; }
/// <summary>
/// Initializes a new <see cref="TwitchAuthenticationOptions" />
/// </summary>

View File

@@ -25,7 +25,7 @@ namespace Owin.Security.Providers.VKontakte.Provider
User = user;
AccessToken = accessToken;
Id = TryGetValue(user, "uid");
Id = TryGetValue(user, "id");
var firstName = TryGetValue(user, "first_name");
var lastName = TryGetValue(user, "last_name");
UserName = firstName + " " + lastName;

View File

@@ -61,7 +61,7 @@ namespace Owin.Security.Providers.VKontakte
var state = Options.StateDataFormat.Protect(properties);
var authorizationEndpoint =
$"{Options.Endpoints.AuthorizationEndpoint}?client_id={Uri.EscapeDataString(Options.ClientId)}&redirect_uri={Uri.EscapeDataString(redirectUri)}&scope={Uri.EscapeDataString(scope)}&state={Uri.EscapeDataString(state)}&display={Uri.EscapeDataString(Options.Display)}";
$"{Options.Endpoints.AuthorizationEndpoint}?client_id={Uri.EscapeDataString(Options.ClientId)}&redirect_uri={Uri.EscapeDataString(redirectUri)}&scope={Uri.EscapeDataString(scope)}&state={Uri.EscapeDataString(state)}&display={Uri.EscapeDataString(Options.Display)}&v={Uri.EscapeDataString(Options.ApiVersion)}";
Response.Redirect(authorizationEndpoint);
@@ -156,7 +156,7 @@ namespace Owin.Security.Providers.VKontakte
// Get the VK user
var userRequestUri = new Uri(
$"{Options.Endpoints.UserInfoEndpoint}?access_token={Uri.EscapeDataString(accessToken)}&user_id{userId}");
$"{Options.Endpoints.UserInfoEndpoint}?access_token={Uri.EscapeDataString(accessToken)}&user_id{userId}&v={Uri.EscapeDataString(Options.ApiVersion)}");
var userResponse = await _httpClient.GetAsync(userRequestUri, Request.CallCancelled);
userResponse.EnsureSuccessStatusCode();

View File

@@ -14,6 +14,7 @@ namespace Owin.Security.Providers.VKontakte
private const string UserInfoEndpoint = "https://api.vk.com/method/users.get";
private const string DefaultCallbackPath = "/signin-vkontakte";
private const string DefaultDisplayMode = "page";
private const string DefaultApiVersion = "5.73";
/// <summary>
/// Gets or sets the a pinned certificate validator to use to validate the endpoints used
@@ -100,10 +101,18 @@ namespace Owin.Security.Providers.VKontakte
/// </summary>
public ISecureDataFormat<AuthenticationProperties> StateDataFormat { get; set; }
/// <summary>
/// Initializes a new <see cref="VKontakteAuthenticationOptions" />
/// </summary>
public VKontakteAuthenticationOptions()
/// <summary>
/// Default API version. Required.
/// </summary>
/// <remarks>
/// Defaults to 5.73
/// </remarks>
public string ApiVersion { get; set; }
/// <summary>
/// Initializes a new <see cref="VKontakteAuthenticationOptions" />
/// </summary>
public VKontakteAuthenticationOptions()
: base(Constants.DefaultAuthenticationType)
{
Caption = Constants.DefaultAuthenticationType;
@@ -118,6 +127,7 @@ namespace Owin.Security.Providers.VKontakte
TokenEndpoint = TokenEndpoint,
UserInfoEndpoint = UserInfoEndpoint
};
ApiVersion = DefaultApiVersion;
}
}
}