Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions Xero.NetStandard.OAuth2Client/src/Client/IXeroClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ public interface IXeroClient
string BuildLoginUri();
string BuildLoginUri(string state);
string BuildLoginUri(string state, string scope);
string BuildLoginUri(string state, string scope, string acrValues);
string BuildLoginUriPkce(string codeVerifier);
string BuildLoginUriPkce(string codeVerifier, string state);
string BuildLoginUriPkce(string codeVerifier, string state, string scope);
Expand Down
14 changes: 11 additions & 3 deletions Xero.NetStandard.OAuth2Client/src/Client/XeroClient.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,18 +62,26 @@ public string BuildLoginUri(string state)
/// <returns>A valid initial redirect URI for Xero OAuth 2.0 authorisation flow.</returns>
public string BuildLoginUri(string state, string scope)
{
return BuildLoginUri(state, scope, xeroConfiguration.AcrValues);
}

/// <summary>
/// Builds a XeroLogin URL for code flow, allows state, scope and acrValues to be passed in.
/// </summary>
/// <returns>A valid initial redirect URI for Xero OAuth 2.0 authorisation flow.</returns>
public string BuildLoginUri(string state, string scope, string acrValues)
{
var url = _xeroAuthorizeUri.CreateAuthorizeUrl(
clientId: xeroConfiguration.ClientId,
responseType: "code",
redirectUri: xeroConfiguration.CallbackUri.AbsoluteUri,
state: state,
scope: scope
scope: scope,
acrValues: acrValues
);
return url;
}



/// <summary>
/// Builds a XeroLogin URL for PKCE flow with codeVerifier input
/// </summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ public class XeroConfiguration
public string Scope { get; set; }
public string State { get; set; }
public string XeroApiBaseUri { get; set; } = "https://api.xero.com";
public string AcrValues { get; set; }
public string XeroLoginBaseUri { get; set; } = "https://login.xero.com";
public string XeroIdentityBaseUri { get; set; } = "https://identity.xero.com";
}
Expand Down