Merge pull request #82 from Romoku/salesforce
Support Instance Url in Salesforce
This commit is contained in:
@@ -20,12 +20,14 @@ namespace Owin.Security.Providers.Salesforce
|
||||
/// <param name="user">The JSON-serialized user</param>
|
||||
/// <param name="accessToken">Salesforce Access token</param>
|
||||
/// <param name="refreshToken">Salesforce Refresh token</param>
|
||||
public SalesforceAuthenticatedContext(IOwinContext context, JObject user, string accessToken, string refreshToken)
|
||||
/// <param name="instanceUrl">Salesforce instance url</param>
|
||||
public SalesforceAuthenticatedContext(IOwinContext context, JObject user, string accessToken, string refreshToken, string instanceUrl)
|
||||
: base(context)
|
||||
{
|
||||
User = user;
|
||||
AccessToken = accessToken;
|
||||
RefreshToken = refreshToken;
|
||||
InstanceUrl = instanceUrl;
|
||||
|
||||
Id = TryGetValue(user, "id");
|
||||
UserId = TryGetValue(user, "user_id");
|
||||
@@ -59,6 +61,11 @@ namespace Owin.Security.Providers.Salesforce
|
||||
/// </summary>
|
||||
public string RefreshToken { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the Salesforce instance url
|
||||
/// </summary>
|
||||
public string InstanceUrl { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Gets the Salesforce ID / User Info Endpoint
|
||||
/// </summary>
|
||||
|
||||
@@ -86,6 +86,7 @@ namespace Owin.Security.Providers.Salesforce
|
||||
dynamic response = JsonConvert.DeserializeObject<dynamic>(text);
|
||||
string accessToken = (string)response.access_token;
|
||||
string refreshToken = (string)response.refresh_token;
|
||||
string instanceUrl = (string)response.instance_url;
|
||||
|
||||
// Get the Salesforce user using the user info endpoint, which is part of the token - response.id
|
||||
HttpRequestMessage userRequest = new HttpRequestMessage(HttpMethod.Get, (string)response.id + "?access_token=" + Uri.EscapeDataString(accessToken));
|
||||
@@ -95,7 +96,7 @@ namespace Owin.Security.Providers.Salesforce
|
||||
text = await userResponse.Content.ReadAsStringAsync();
|
||||
JObject user = JObject.Parse(text);
|
||||
|
||||
var context = new SalesforceAuthenticatedContext(Context, user, accessToken, refreshToken);
|
||||
var context = new SalesforceAuthenticatedContext(Context, user, accessToken, refreshToken, instanceUrl);
|
||||
context.Identity = new ClaimsIdentity(
|
||||
Options.AuthenticationType,
|
||||
ClaimsIdentity.DefaultNameClaimType,
|
||||
|
||||
Reference in New Issue
Block a user