In recent development, I need to start leveraging the TOKEN_SET and TOKEN_REFRESH dispatched events so that I can properly pass them on subsequent API calls to the express application.
Looking at the documentation, those events are not dispatched in stormpath-react@1.3.X so I upgraded to stormpath-react@2.0.0.
After doing so, social login link throws the following error:
Uncaught TypeError: Cannot read property 'split' of undefined
at SocialLoginLink._buildAuthorizationUri (eval at <anonymous> (bundle.js:4076), <anonymous>:11254:59)
at eval (eval at <anonymous> (bundle.js:4076), <anonymous>:11315:42)
at eval (eval at <anonymous> (bundle.js:4076), <anonymous>:938:12)
at XMLHttpRequest.request.onreadystatechange (eval at <anonymous> (bundle.js:4076), <anonymous>:886:8)
Looking at the code, specifically this section:
_createClass(SocialLoginLink, [{
key: '_buildAuthorizationUri',
value: function _buildAuthorizationUri(accountStore, scope, redirectUri) {
// The authorizeUri includes the basic set of query parameters, but
// we need to be able to override them with values that the developer
// may supply via this library
console.log(accountStore);
console.log(scope);
console.log(redirectUri);
var authorizationUri = accountStore.authorizeUri;
var authorizationUriBaseEndpoint = authorizationUri.split('?')[0]; //here
var defaultQueryString = authorizationUri.split('?')[1];
var provider = accountStore.provider;
var queryString = _utils2.default.parseQueryString(defaultQueryString);
return authorizationUriBaseEndpoint + '?' + _utils2.default.encodeQueryString((0, _xtend2.default)(queryString, {
client_id: provider.clientId,
scope: scope || provider.scope,
redirect_uri: redirectUri || _utils2.default.getCurrentHost(),
response_type: 'stormpath_token'
}));
}
From the above, console.log(accountStore) yields the following object:
Note I added special chars to the clientId here for security reasons but I can ping my exact clientId if necessary.
{
href: "https://api.stormpath.com/v1/directories/5dOVvMXS9HuYWB9Gfq48Pb",
name: "Local-ACME-Google"
provider: {
clientId: "4136362asdf855-6gsti0asdf6hk61bed5p211rm0lkofdki.apps.googleusercontent.com",
href: "https://api.stormpath.com/v1/directories/5dOVvMXS9HuYWB9Gfq48Pb/provider",
providerId: "google",
scope: "email profile"
}
}
Looking at the SP console, the AUTHORIZED REDIRECT URI is set appropriately,

It appears that the authorizeUri is not properly getting set in the accountStore
Looking further into userStore.getLoginViewData,
_context2.default.userStore.getLoginViewData(function (err, data) {
var fields = null;
var socialProviders = null;
console.log(data);
if (err) {
fields = defaultFields;
} else if (data && data.form) {
fields = data.form.fields;
if (!_this2.props.hideSocial) {
data.accountStores.forEach(function (accountStore) {
// More code here, but it's unrelated
}
The log of the data object from above:
{
accountStores: [
{
href: "https://api.stormpath.com/v1/directories/5dOVvMXS9HuYWB9Gfq48Pb",
name: "Local-ACME-Google",
provider: {} // This is the same object as above, its populated with the clientId, href and providerId
}
],
form: {
fields: Array[2] // this is populated with login/password objects
}
}
This is somewhat related to #161 but in that case I wasn't setting the redirectUri appropriately in the SP Portal. This scenario seems quite a bit different.
Thanks as usual and glad to help if I can figure out why the redirectUri is not passed down.
In recent development, I need to start leveraging the
TOKEN_SETandTOKEN_REFRESHdispatched events so that I can properly pass them on subsequent API calls to the express application.Looking at the documentation, those events are not dispatched in
stormpath-react@1.3.Xso I upgraded tostormpath-react@2.0.0.After doing so, social login link throws the following error:
Looking at the code, specifically this section:
From the above,
console.log(accountStore)yields the following object:Note I added special chars to the clientId here for security reasons but I can ping my exact clientId if necessary.
Looking at the SP console, the

AUTHORIZED REDIRECT URIis set appropriately,It appears that the
authorizeUriis not properly getting set in theaccountStoreLooking further into
userStore.getLoginViewData,The log of the data object from above:
This is somewhat related to #161 but in that case I wasn't setting the redirectUri appropriately in the SP Portal. This scenario seems quite a bit different.
Thanks as usual and glad to help if I can figure out why the redirectUri is not passed down.