We we all know, if you have a web map app that consumes secure services, when you navigate to that page the IdentityManager will provide a login dijit which creates a security.
I have a web page named MyWebAppWithSecureServices.html that meets that criteria.
I want my users to log in from another html page (MyLoginPage.html) and use that security to do a window.location.replace("MyWebAppWithSecureServices.html");
I want to do this without having to do any magic with a token, like appending it to the URL of a service REST endpoint.
I know I need to use "esri/Credential", "esri/IdentityManager", "esri/ServerInfo" to accomplish my goal. I'm having no success. Can you help me wrap my head around this please?
TIA
In the code below esriId is an instance of "esri/IdentityManager"
function tryCreateCredentialsAndRedirectToAppWithSecureServices() { var userId = dojo.byId("username").value; var password = dojo.byId("password").value; var serverInfo = new ServerInfo(); serverInfo.server = "http://www.MyDomain.com"; serverInfo.tokenServiceUrl = "http://www.MyDomain.com/ArcGIS/tokens/"; esriId.registerServers([serverInfo]); esriId.generateToken(serverInfo, { username: userId, password: password }).then(function(response) { // got our response from the token dispenser, now register it with the identify manager var tokenRegistrationObject = { expires: response.expires, server: serverInfo.server, ssl: false, token: response.token, userId: userId } esriId.registerToken(tokenRegistrationObject); var myCred = esriId.findCredential( "http://www.MyDomain.com", userId); var idObject = {}; idObject.serverInfos = serverInfo; var credentials = {}; credentials.userId = userId; credentials.server = "http://www.MyDomain.com/arcgis"; credentials.token = response.token; credentials.expires = response.expires; credentials.ssl = false; credentials.scope = "server"; credentials.validity = response.validity; credentials.creationTime = myCred.creationTime; idObject.credentials = [credentials]; esri.id.tokenValidity = response.validity;; esri.id.initialize(idObject); window.location.replace("MyWebAppWithSecureServices.html"); }); }