Yellowfin 클라이언트 조직에 속한 사람을위한 JSAPIv3의 대시 보드보기
개요
제목과 같지만, 싶다고 하는 경우에 사용할 수 있는 방법을 검증한 결과, 무사히 표시할 수 있었으므로 그 메모를 남기려고 생각합니다.
전제
· 관리자 및 액세스 사용자가 있습니다. 이 경우 관리자 사용자( CORS 설정을 수행하고 webserver를 통해 REST로 Yellowfin 서버에 액세스 ), 액세스 사용자( 아 d 민 @ 이 ぉ w w 흠. 이 m. 아우 ).
· 액세스 사용자는 test1이라는 클라이언트 조직에 속합니다 (참조 ID도 추가).
・이번의 경우는 SSO를 유효하게 하고 있기 때문에, 아 d민 2@이ぇぉw 후우. 이 m. 아우완료입니다.
샘플 코드
설명은 body 변수 액세스 사용자 정보에 clientOrgRef를 부여하고 JSAPIv3을 사용하여 대시보드를 표시할 때 URL에 clientOrg 쿼리를 추가하는 것입니다.
dashboradClientRef.js<html>
<head>
<meta charset="utf-8" />
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
</head>
<body>
<div id="reportDiv"></div>
<script>
var authUserId = '[email protected]';
var authUserPass = 'dammy';
var adminId = '[email protected]';
var adminPassword = 'test';
var body = {
signOnUser: {
userName: authUserId,
password: authUserPass,
clientOrgRef: 'test1'
},
noPassword: true,
adminUser: {
userName: adminId,
password: adminPassword
}
};
//encode to JSON
var json_text = JSON.stringify(body);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost:8940/api/rpc/login-tokens/create-sso-token');
xhr.responseType = 'json';
xhr.onload = () => {
var securityToken = xhr.response.securityToken;
//alert(securityToken);
let url = 'http://localhost:8940/JsAPI/v3?token=' + securityToken + '&clientOrg=test1';
let tp = 'text/javascript';
let sc = document.createElement('script');
sc.src = url;
sc.type = tp;
document.body.appendChild(sc);
setTimeout(function () {
yellowfin.showLoginPrompt = false;
yellowfin.init().then(() => {
yellowfin.loadDashboard({
dashboardUUID: 'e7409ff2-f846-44e1-a603-b78ec51b20b9',
element: document.querySelector('div#reportDiv')
});
});
}, 1000);
};
xhr.setRequestHeader('Authorization', 'YELLOWFIN ts=' + new Date().getTime() + ', nonce=123');
xhr.setRequestHeader('Accept', 'application/vnd.yellowfin.api-v1+json');
xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
xhr.send(json_text);
</script>
</body>
</html>
칸소
이제 내장 표시에서도 사람에 따라 클라이언트 조직별로 데이터가 다른 대시보드도 표시할 수 있게 되네요. 그 전의 시스템으로 정보는 가지런히 할 필요가 있습니다만・・・. 그래도 액세스 필터로 나누고 있는 경우라면 유효한 것이 아닐까 생각합니다.
Reference
이 문제에 관하여(Yellowfin 클라이언트 조직에 속한 사람을위한 JSAPIv3의 대시 보드보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/celery/items/2428fd35d37cb5b2bd65
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
· 관리자 및 액세스 사용자가 있습니다. 이 경우 관리자 사용자( CORS 설정을 수행하고 webserver를 통해 REST로 Yellowfin 서버에 액세스 ), 액세스 사용자( 아 d 민 @ 이 ぉ w w 흠. 이 m. 아우 ).
· 액세스 사용자는 test1이라는 클라이언트 조직에 속합니다 (참조 ID도 추가).
・이번의 경우는 SSO를 유효하게 하고 있기 때문에, 아 d민 2@이ぇぉw 후우. 이 m. 아우완료입니다.
샘플 코드
설명은 body 변수 액세스 사용자 정보에 clientOrgRef를 부여하고 JSAPIv3을 사용하여 대시보드를 표시할 때 URL에 clientOrg 쿼리를 추가하는 것입니다.
dashboradClientRef.js<html>
<head>
<meta charset="utf-8" />
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
</head>
<body>
<div id="reportDiv"></div>
<script>
var authUserId = '[email protected]';
var authUserPass = 'dammy';
var adminId = '[email protected]';
var adminPassword = 'test';
var body = {
signOnUser: {
userName: authUserId,
password: authUserPass,
clientOrgRef: 'test1'
},
noPassword: true,
adminUser: {
userName: adminId,
password: adminPassword
}
};
//encode to JSON
var json_text = JSON.stringify(body);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost:8940/api/rpc/login-tokens/create-sso-token');
xhr.responseType = 'json';
xhr.onload = () => {
var securityToken = xhr.response.securityToken;
//alert(securityToken);
let url = 'http://localhost:8940/JsAPI/v3?token=' + securityToken + '&clientOrg=test1';
let tp = 'text/javascript';
let sc = document.createElement('script');
sc.src = url;
sc.type = tp;
document.body.appendChild(sc);
setTimeout(function () {
yellowfin.showLoginPrompt = false;
yellowfin.init().then(() => {
yellowfin.loadDashboard({
dashboardUUID: 'e7409ff2-f846-44e1-a603-b78ec51b20b9',
element: document.querySelector('div#reportDiv')
});
});
}, 1000);
};
xhr.setRequestHeader('Authorization', 'YELLOWFIN ts=' + new Date().getTime() + ', nonce=123');
xhr.setRequestHeader('Accept', 'application/vnd.yellowfin.api-v1+json');
xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
xhr.send(json_text);
</script>
</body>
</html>
칸소
이제 내장 표시에서도 사람에 따라 클라이언트 조직별로 데이터가 다른 대시보드도 표시할 수 있게 되네요. 그 전의 시스템으로 정보는 가지런히 할 필요가 있습니다만・・・. 그래도 액세스 필터로 나누고 있는 경우라면 유효한 것이 아닐까 생각합니다.
Reference
이 문제에 관하여(Yellowfin 클라이언트 조직에 속한 사람을위한 JSAPIv3의 대시 보드보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/celery/items/2428fd35d37cb5b2bd65
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
<html>
<head>
<meta charset="utf-8" />
<script src="https://code.jquery.com/jquery-3.5.1.js"></script>
</head>
<body>
<div id="reportDiv"></div>
<script>
var authUserId = '[email protected]';
var authUserPass = 'dammy';
var adminId = '[email protected]';
var adminPassword = 'test';
var body = {
signOnUser: {
userName: authUserId,
password: authUserPass,
clientOrgRef: 'test1'
},
noPassword: true,
adminUser: {
userName: adminId,
password: adminPassword
}
};
//encode to JSON
var json_text = JSON.stringify(body);
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost:8940/api/rpc/login-tokens/create-sso-token');
xhr.responseType = 'json';
xhr.onload = () => {
var securityToken = xhr.response.securityToken;
//alert(securityToken);
let url = 'http://localhost:8940/JsAPI/v3?token=' + securityToken + '&clientOrg=test1';
let tp = 'text/javascript';
let sc = document.createElement('script');
sc.src = url;
sc.type = tp;
document.body.appendChild(sc);
setTimeout(function () {
yellowfin.showLoginPrompt = false;
yellowfin.init().then(() => {
yellowfin.loadDashboard({
dashboardUUID: 'e7409ff2-f846-44e1-a603-b78ec51b20b9',
element: document.querySelector('div#reportDiv')
});
});
}, 1000);
};
xhr.setRequestHeader('Authorization', 'YELLOWFIN ts=' + new Date().getTime() + ', nonce=123');
xhr.setRequestHeader('Accept', 'application/vnd.yellowfin.api-v1+json');
xhr.setRequestHeader('Content-Type', 'application/json;charset=UTF-8');
xhr.send(json_text);
</script>
</body>
</html>
이제 내장 표시에서도 사람에 따라 클라이언트 조직별로 데이터가 다른 대시보드도 표시할 수 있게 되네요. 그 전의 시스템으로 정보는 가지런히 할 필요가 있습니다만・・・. 그래도 액세스 필터로 나누고 있는 경우라면 유효한 것이 아닐까 생각합니다.
Reference
이 문제에 관하여(Yellowfin 클라이언트 조직에 속한 사람을위한 JSAPIv3의 대시 보드보기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/celery/items/2428fd35d37cb5b2bd65텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)