Hi,
I have developed an application that shows a WebMap from ArcGIS portal by using the ArcGIS JS API. I implemented authentication flow by using the IdentityManager. I'm able to get the token and register it and the secured resource then loads correctly.
However, when I refresh the page in browser the registered token/credential is not available anymore. Is there a way to keep the sign in status as long as the token is valid? Or is it so that I need to store the access token (and possibly other needed details) my self in client side and then just validate the token before request to JS API and register it again?
What is the recommended way to do this?
Regards,
Eemeli
identityManager<SPAN class="punctuation token">.</SPAN><SPAN class="token function">checkSignInStatus</SPAN><SPAN class="punctuation token">(</SPAN> portalUrl <SPAN class="operator token">+</SPAN> <SPAN class="string token">"/sharing"</SPAN> <SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">then</SPAN><SPAN class="punctuation token">(</SPAN> <SPAN class="keyword token">function</SPAN> <SPAN class="punctuation token">(</SPAN> credential <SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="comment token">// User is already authenticated.</SPAN>
identityManager<SPAN class="punctuation token">.</SPAN><SPAN class="token function">registerToken</SPAN><SPAN class="punctuation token">(</SPAN> <SPAN class="punctuation token">{</SPAN>
token<SPAN class="punctuation token">:</SPAN> credential<SPAN class="punctuation token">.</SPAN>token<SPAN class="punctuation token">,</SPAN>
server<SPAN class="punctuation token">:</SPAN> portalUrl
<SPAN class="punctuation token">}</SPAN> <SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="token function">resolve</SPAN><SPAN class="punctuation token">(</SPAN> <SPAN class="keyword token">true</SPAN> <SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN> <SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="keyword token">catch</SPAN><SPAN class="punctuation token">(</SPAN> <SPAN class="keyword token">function</SPAN><SPAN class="punctuation token">(</SPAN> error <SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="comment token">// User not authenticated, login the user.</SPAN>
identityManager<SPAN class="punctuation token">.</SPAN><SPAN class="token function">getCredential</SPAN><SPAN class="punctuation token">(</SPAN> portalUrl <SPAN class="operator token">+</SPAN> <SPAN class="string token">"/sharing"</SPAN> <SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">.</SPAN><SPAN class="token function">then</SPAN><SPAN class="punctuation token">(</SPAN> <SPAN class="keyword token">function</SPAN> <SPAN class="punctuation token">(</SPAN> credential <SPAN class="punctuation token">)</SPAN> <SPAN class="punctuation token">{</SPAN>
<SPAN class="comment token">// Register the token after authentication.</SPAN>
<SPAN class="comment token">// The token is valid 60 min by default.</SPAN>
identityManager<SPAN class="punctuation token">.</SPAN><SPAN class="token function">registerToken</SPAN><SPAN class="punctuation token">(</SPAN> <SPAN class="punctuation token">{</SPAN>
token<SPAN class="punctuation token">:</SPAN> credential<SPAN class="punctuation token">.</SPAN>token<SPAN class="punctuation token">,</SPAN>
server<SPAN class="punctuation token">:</SPAN> portalUrl <SPAN class="operator token">+</SPAN> <SPAN class="string token">"/sharing/rest"</SPAN><SPAN class="punctuation token">,</SPAN>
expires<SPAN class="punctuation token">:</SPAN> credential<SPAN class="punctuation token">.</SPAN>expires<SPAN class="punctuation token">,</SPAN>
ssl<SPAN class="punctuation token">:</SPAN> credential<SPAN class="punctuation token">.</SPAN>ssl<SPAN class="punctuation token">,</SPAN>
userId<SPAN class="punctuation token">:</SPAN> credential<SPAN class="punctuation token">.</SPAN>userId
<SPAN class="punctuation token">}</SPAN> <SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="token function">resolve</SPAN><SPAN class="punctuation token">(</SPAN> <SPAN class="keyword token">true</SPAN> <SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN> <SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN>
<SPAN class="punctuation token">}</SPAN> <SPAN class="punctuation token">)</SPAN><SPAN class="punctuation token">;</SPAN><SPAN class="line-numbers-rows"><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN><SPAN></SPAN></SPAN>