我正在与AuthSub合作,在codeigniter框架上查看google finance api的投资组合。
成功登录谷歌后,它会重定向到我们提供的网址。
我提供的网址如下:www.finance.mysite.com/google/token/
google会将其令牌添加为:
www.finance.mysite.com/google/token/?token=1/gyXbtvKT4XaIuUIhEBAsuxyDgATMDk3ztAG3MocNkKI
如何在google控制器内的函数token()中获取它。
答案 0 :(得分: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!');
?>
将令牌存储在会话或数据库中是重定向的替代方法,但重定向将如何“将令牌作为参数提供给控制器”,就像您要求的那样。
答案 1 :(得分:0)
只需提取令牌,然后将其路由到您选择的控制器。 你可以像这样提取参数
$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");
}
注意:如果网址上只有一个参数,则上述代码才有效,否则无效。