首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yii2 2-卷曲oAuth2与zoho

Yii2 2-卷曲oAuth2与zoho
EN

Stack Overflow用户
提问于 2018-07-16 11:19:04
回答 2查看 545关注 0票数 7

我正在研究Yii2。我有一个URL,它在点击浏览器时被重定向到我的重定向URI

URL

代码语言:javascript
复制
https://accounts.zoho.com/oauth/v2/auth?scope=ZohoBugTracker.projects.ALL,ZohoBugTracker.bugs.ALL&client_id=1000&response_type=code&access_type=offline&redirect_uri=http://11.111.111.111:7000/api/oauth/zoho_auth

当我点击上面的URL时,它将重定向到我的重定向URI,同时给出代码

重定向URI

访问上述URL后,重定向URI为http://11.111.111.111:7000/api/oauth/zoho_auth?code=1000&location=us&accounts-server=https%3A%2F%2Faccounts.zoho.com

重定向URI响应

{“消息”:“没有找到与请求URI‘auth?code=1000&location=us&accounts-server=https:%2F%2Faccounts.zoho.com’匹配的HTTP资源”}

如何从上述响应中获取code

更新1

根据所提出的建议。我试图使用GET发送一个林斯林请求。下面是我的代码

代码语言:javascript
复制
 public static function authToken()
{

    $curl = new curl\Curl();
    $response = $curl->setGetParams([
        'scope' => 'ZohoBugTracker.projects.ALL,ZohoBugTracker.bugs.ALL',
        'client_id' => '1000',
        'response_type' => 'code',
        'access_type' => 'offline',
        'redirect_uri' => 'http://11.111.111.111:7000/api/oauth/zoho_auth',
    ])
        ->get('https://accounts.zoho.com/oauth/v2/auth');

    echo $response;
    exit();
}

然后在一个函数中调用这个函数,通过这个函数,我可以使用zoho创建bug。

通过POSTMAN测试我的POSTMAN

9.jpg&flag=1

我的email函数是在API控制器中编写的。因此,它将首先命中issueSetup($param1,$param2)

代码语言:javascript
复制
public function actionEmail()
{
    .
    .
    .
    .

     Installations::setupEmail($param1, $param2, $param3);
    .
    .
    .
}

上面的函数setupEmail($param1,$param2,$param3)在我的控制器内。

代码语言:javascript
复制
 public static function setupEmail($ref_no, $customer_id, $install_id)
 {
     .
     .
     .
     .
     .
      list(params.....)= Installations::issueSetup($param1,$param2);
     .
     .
     .
     .      
  }

issuSetup函子

代码语言:javascript
复制
public static function issueSetup($param1,$param2)
{
     .
     .
     .
     .
    $token = Installations::authToken();

    exit();
    .
    .
    .
    . 
}

在点击API后,我在邮递员中没有得到任何回应,只有空窗口。

任何帮助都将不胜感激。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-07-19 10:46:22

当您启用SSL并检查响应代码/响应头以重定向到Zuhu上的userAuth表单时,它可以很好地工作:

代码语言:javascript
复制
$curl = new \linslin\yii2\curl\Curl();

/** @var Curl $response */
$curl->setGetParams([
        'scope' => 'ZohoBugTracker.projects.ALL,ZohoBugTracker.bugs.ALL',
        'client_id' => '1000',
        'response_type' => 'code',
        'access_type' => 'offline',
        'redirect_uri' => 'http://11.111.111.111:7000/api/oauth/zoho_auth',
])->setOption(CURLOPT_SSL_VERIFYPEER, true)
    ->setOption(CURLOPT_SSL_VERIFYHOST, false)
    ->setOption(CURLOPT_CAINFO, 'C:/Ampps/apache/conf/ssl_crt/cacert.pem')
    ->get('https://accounts.zoho.com/oauth/v2/auth');

$responseHeaders = $curl->responseHeaders;

if ($curl->responseCode === 302 && isset($responseHeaders['Location'])) {
    header("location: ".$responseHeaders['Location']);
    die();
}
票数 2
EN

Stack Overflow用户

发布于 2018-07-18 12:49:53

你试过这个错误吗?

代码语言:javascript
复制
if ($curl->errorCode === null) {
   echo $response;
} else {

    echo '<pre>';print_r($curl->errorCode);
} 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51360587

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档