FastLink Launch Comparison
<script type='text/javascript' src='https://cdn.yodlee.com/fastlink/v4/initialize.js'></script>
<body>
...
...
<script>
(function (window) {
try{
//Open FastLink
var fastlinkBtn = document.getElementById('btn-fastlink');
window.fastlink.open({
fastLinkURL: 'https://fastlink4url.com/authenticate/',
accessToken: 'Bearer ',
//CC Auth Token to be passed
params : {
configName :'YodleeInternalPDVdoNotUse', // configName is a mandatory param
//providerAccountId : 1122222,
//flow : 'edit',
},
forceIframe: true,
onSuccess: function (data) {
console.info("onSuccess method called: => ",data);
},
onError: function (data) {
console.info("onError method called: => ",data);
//window.fastlink.close();
},
onExit: function (data) {
console.log("onExit method called: => ",data);
},
onEvent: function (obj) {
console.log("onEvent method called: => ",obj);
if(obj && obj.type === 'OPEN_EXTERNAL_URL'){
var url=(obj.data && obj.data.url)?obj.data.url :'';
}
console.log("provider url=>", url);
}
},
'container-fastlink');
},
false);
}catch(e){
console.log("FAILED TO LAUNCH FL4: => ",data);
}
}(window));
</script>
</body>
</html>
FastLink 2 or FastLink 3
HTML Form - Launch FastLink Without Using Initialize JS
<form id="yodlee-form" action="https://fastlinkurl.com/authenticate/" method="POST" target="yodlee-iframe">
<input type="text" name="RelayState" value="https://fastlinkurl.com/authenticate/somename/10003600?&callback=https://www.developer.yodlee.com&locationurl=https://myappurl.html&iframeResize=true"/>
<!-- RelayState: Mostly used with SAML Integrations to pass the final URL of the app to be loaded -->
<input type="text" name="samlResponse" value="<Base64 Encoded SAML Response XML>"/>
<!-- SAMLResponse: Used with SAML Integrations to pass the Base64 Encoded value of SAML Response XML -->
<input type="text" name="accessToken" value="Bearer <CCToken>"/>
<!-- CCToken: Used if already integrating with Client Credentials Authenctication -->
<input type="text" name="jwtToken" value="Bearer <JWTToken>"/>
<!-- JWTToken: Used with JWT Intrgation -->
<input type="text" name="rsession" value="<UserToken>"/>
<input type="text" name="token" value="<AppAccessToken>"/>
<!-- rsession & token : Used with access token type Integration -->
<input type="text" name="redirectReq" value="true"/>
<!-- redirectReq: Used by customers to auto load Yodlee Apps after authentication -->
<input type="text" name="app" value="10003600"/>
<!-- app: Used by legacy implementations to pass the application ID while launching Yodlee Apps/FastLink -->
<input type="text" name="locationurl" value="https://clienthost.com/ClientSideIframe.html"/>
<!-- locationurl: Used by legacy implementations to pass the parent application url while launching Yodlee Apps/FastLink -->
<input type="text" name="extraParams" value="iframeResize=true&locationurl=https://clienthost.com/ClientSideIframe.html"/>
<!-- extraParams: Typically used with NON SAML Based integrations to pass various parameters to the Yodlee application during launch -->
<!-- Parameter like: locationurl/callbak/flow/providerId/providerAccountId etc -->
<input id="btn-fastlink" type="submit" value="Launch App"/>
</form>
<iframe name="yodlee-iframe"></iframe>
Launch FastLink Using Initialize JS
<script type='text/javascript' src='https://cdn.yodlee.com/fastlink/v3/initialize.js'></script>
<body>
...
...
<script>
(function (window) {
//Open FastLink
var fastlinkBtn = document.getElementById('btn-fastlink');
fastlinkBtn.addEventListener('click', function() {
window.fastlink.open({
fastLinkURL: 'https://fastlinkurl.com/authenticate/',
accessToken: 'Bearer <cc_token>',
// accessToken: Used if already integrating with Client Credentials Authenctication
jwtToken: 'Bearer <jwt_token>',
// jwtToken: Used with JWT Intrgation
samlToken: <Base64 encoded SAML Response XML>
// samlToken: Used with SAML Integrations to pass the Base64 Encoded value of SAML Response XML
params: {
//locationurl : ,
//iframeResize : ,
//providerAccountId : 1122222,
//flow : 'edit',
//userExperienceFlow: ,
//isIFrameMounted:
},
// Parameters used today would depend on the implementation
onSuccess: function (data) {
console.log(data);
},
onError: function (data) {
console.log(data);
//window.fastlink.close();
},
onExit: function (data) {
console.log(data);
},
onEvent: function (data) {
console.log(data);
}
},
'container-fastlink');
},
false);
}(window));
</script>
</body>