2012-02-23 51 views
0

我正在使用AuthSub查看codeigniter框架上的google finance api的投資組合。在codeigniter中,如何將從google登錄返回的令牌作爲參數傳遞給控制器​​?

成功登錄後,它重定向到我們提供的網址。

我提供的網址,如:www.finance.mysite.com/google/token/

谷歌將追加其令牌,如:

www.finance.mysite.com/google/token/?token=1/gyXbtvKT4XaIuUIhEBAsuxyDgATMDk3ztAG3MocNkKI 

我怎樣才能得到它的功能標記()谷歌控制器內內。

回答

1

我不知道你能控制它如何給你。對於控制器參數,您需要在Auth回調「給予」令牌後重定向。這可能是不必要的,因爲你可以簡單地將它從查詢字符串中取出。

<?php 
$token = $this->input->get('token'); 
if ($token) 
{ 
    // Option 1: redirect to a controller action that 
    //   takes the token as the parameter 
    redirect('/google/token/'.$token); 

    // Option 2: do something directly with the token 
    //   right now (why bother redirecting?) 
    var_dump($token); 
    exit; 
} 
die('Access token? We didn\'t get no access token!'); 
?> 

存儲在會話或數據庫中的令牌是重定向的替代,但重定向會如何「獲得令牌作爲參數傳遞給控制器​​」像你這樣問。

+0

谷歌追加「?token = aldkfjasldfkKJH444lkj」到我們提供的任何網址,例如我提供了finance.mysite.com/google/token/ – kamal 2012-02-23 15:38:53

+1

右鍵,所以使用'$ this-> input-> get('token') '並且完成它... – landons 2012-02-23 15:56:56

0

只需提取令牌,並將其路由到您選擇的控制器。 您可以提取PARAMS這樣

$params = "http://www.finance.mysite.com/google/token/?token=1/gyXbtvKT4XaIuUIhEBAsuxyDgATMDk3ztAG3MocNkKI"; 
$parsed = parse_url($params); 
$pieces = explode("=", $parsed['query']); 
$searchIndex = array_search("token", $pieces); 
if($searchIndex) { 
    $token = $pieces[$searchIndex+1]; 
    //now use it as you need 
    redirect("controller/google/$token"); 
} 

注:上面的代碼只會工作,如果在網址只有一個參數,否則不行。

相關問題