0
对于我们的新报告工具,我们使用的是Tableau,但我们希望我们的用户只需登录我们的网站即可查看信息。Tableau受信任的身份验证不起作用/无错误
在画面的服务器端似乎一切正常,但我似乎无法从我的网站上的Tableau得到任何数据。可悲的是我也没有收到任何错误。我不是后端专家,我知道一些基本的PHP,所以我可能忽略了一些东西。任何帮助都会受到伤害!
注意到我们的网站是安全的SSL可能很重要,我不知道这会对此产生多大影响。
所以这是我加载什么之后用户已经成功地登录到我们的系统:
$server = "our server ip";
$view_url = "tableau view url";
$user = 'admin';
function get_trusted_url($user,$server,$view_url) {
$params = ':embed=yes&:toolbar=yes';
$ticket = get_trusted_ticket($server, $user, $_SERVER['REMOTE_ADDR']);
if (strcmp($ticket, "-1") != 0) {
return "http://$server/trusted/$ticket/$view_url?$params";
}
else
return 0;
}
:
function get_trusted_ticket($wgserver, $user, $remote_addr) {
$params = array(
'username' => $user,
'client_ip' => $remote_addr
);
return do_post_request("https://$wgserver/trusted", $params);
}
:
function do_post_request($url, $data, $optional_headers = null)
{
$params = array('http' => array(
'method' => 'POST',
'content' => http_build_query($data)
));
if ($optional_headers !== null) {
$params['http']['header'] = $optional_headers;
}
$ctx = stream_context_create($params);
$fp = @fopen($url, 'rb', false, $ctx);
if (!$fp) {
throw new Exception("Problem with $url, $php_errormsg");
}
$response = @stream_get_contents($fp);
if ($response === false) {
throw new Exception("Problem reading data from $url, $php_errormsg");
}
return $response;
}
这是我在哪里尝试显示数据:
<script type="text/javascript" src="http://IP/javascripts/api/viz_v1.js"></script>
<object class="tableauViz" width="1519" height="693" style="display:none;">
<param name="path" value="<?php echo get_trusted_url($user,$server,$view_url)?>" />
</object>