如何将oauth2令牌传递给mashup filab?

时间:2015-09-05 09:25:15

标签: oauth-2.0 fiware fiware-wirecloud

我已经按照整个过程从Identity Manager获取oauth2访问令牌(我得到它),我想将它传递给在Filab Mashup上开发但嵌入在我自己的Web中的Web应用程序。 在我的Mashup应用程序中,我需要获取oauth令牌来访问Orion Context Broker信息,但我不知道如何传递它。 这是我的回调URL的代码,我获取了令牌:

<?php
//get the code from url
$code = $_GET["code"];

//print_r($code);

//application specific declarations
$domain = "www.talkysync.com";
$clientId = "my_client_ID";
$clientSecret = "my_client_secret";
//access token url
$url = 'https://account.lab.fiware.org/oauth2/token';

//payload params for the request token
$payload = 'grant_type=authorization_code&code='. $code .'&redirect_uri=http%3A%2F%2Fwww.talkysync.com%2Ffiware_login%2Fcallback.php';

//base64(client_id:client_secret)
$cadena = $clientId . ":" .$clientSecret;
$base = base64_encode($cadena);

//extra header for the request
$header = array("Content-Type: application/x-www-form-urlencoded", "Authorization: Basic ". $base);

//actual request implementation
$ch = curl_init($url);

curl_close($ch);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
;
//get the access token from the json response

$jsonData = json_decode($output,true);
$access_token = $jsonData["access_token"];

//start a session and set the access token to it
session_start();
$_SESSION["X-Auth-Token"] = $access_token;
$_SESSION["code"] = $code;

header("Location: fiware.php");
?>

这是fiware.php的代码:

<?php
session_start();
if(!isset($_SESSION["X-Auth-Token"])){  
    header('Location: login.php');
}else{
    header('Location: https://mashup.lab.fiware.org/ertonio/Talkykar?mode=embedded');
}
?>

但是在mashup应用程序中,我总是有匿名连接,因为我不知道如何将令牌传递给它。

提前致谢。

1 个答案:

答案 0 :(得分:1)

目前无法创建包含凭据的嵌入式WireCloud URL。看似有趣且值得实施,但似乎还有很多工作,所以不要指望它会在很短的时间内实现。

关于从WireCloud访问orion上下文代理,请查看FIWARE Academy上WireCloud's course上的“3.2.1。使用Orion Context Broker”部分。