Zoho Api Oauth v.2 |Почему он хочет войти в систему по запросу авторизации пользователя? - PullRequest
0 голосов
/ 28 октября 2018

Я прочитал это;(https://sheet.zoho.com/help/api/v2/#authorization)

enter image description here

Примечание. Я точно знаю, что URL работает. Если я скопирую и вставлю его в браузер, все в порядке.

Как мне получить этот код (Авторизация) на моем сервере?

Я пытаюсь это сделать на своем сервере (php-curl):

<?php
$uri = 'www.xxx.com/zoho_return.php';
$scope = 'ZohoSheet.dataAPI.UPDATE,ZohoSheet.dataAPI.READ';
$clientid = '1000.XXXXXXXXXXXXXXX';
$zoho_client_secret = 'XXXXXXXXXXXXXXXXXXXXX';
$accestype = 'offline';
$ch = curl_init();
$url = 'https://accounts.zoho.com/oauth/v2/auth?scope=' . 
       $scope . '&client_id=' . $clientid . '&response_type=code&access_type=' . 
       $accestype . '&redirect_uri=' . $uri . '';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT ,0);
curl_setopt($ch, CURLOPT_TIMEOUT, 0);
$html = curl_exec($ch);
$redirectURL = curl_getinfo($ch,CURLINFO_EFFECTIVE_URL );
curl_close($ch);
echo 'redirectURL: '.$redirectURL.'<br><br>';
echo 'header: '.$html;

Ответ на Chrome:

redirectURL: https://accounts.zoho.com/oauth/v2/auth?scope=ZohoSheet.dataAPI.UPDATE,ZohoSheet.dataAPI.READ&client_id=1000.XXXXXXXXXXXXXXX&response_type=code&access_type=online&redirect_uri=www.xxx.com/zoho_return.php

заголовок: HTTP / 1.1302 Найдено сервер: ZGS Дата: Пт, 26 октября 2018 22:48:43 GMT Длина контента: 0 Соединение: keep-alive Set-Cookie: a8c61fa0dc = 8db261d30d9c85a68e92e4f91ec8079a; Путь = /; Безопасный; HttpOnly X-Content-Type-Options-Options: nosniff X-XSS-Protection: 1 Set-Cookie: iamcsr = 108a1f8a-29cf-4408-bbaf-113f8c42a3d7; путь = /; безопасный; приоритет = высокий Pragma: контроль без кэширования Cache-Control: no-cache Истекает: чт01 января 1970 00:00:00 GMT X-Frame-Options: SAMEORIGIN Расположение: https://accounts.zoho.com/signin?servicename=AaaServer&serviceurl=%2Foauth%2Fv2%2Fauth%3Fscope%3DZohoSheet.dataAPI.UPDATE%252CZohoSheet.dataAPI.READ%26client_id%1000.XXXXXXXXXXXXXXX%26response_type%3Dcode%26access_type%3Donline%26redirect_uri%3Dhttp%253A%252F%252Fxxx.com%252Fzoho_return.php Строгий транспорт-безопасность: max-age = 15768000

1 Ответ

0 голосов
/ 29 октября 2018

Zoho CRM API v2 поддерживает только Предоставление кода авторизации , который работает в браузере, как вы упомянули.

Дело в том, что вам нужно использовать Предоставление пароля , чтобы получить токен доступа напрямую, если у вас есть действительные учетные данные, которые не поддерживаются Zoho.

Вам необходимо провести исследование о OAuth 2.0 .

Просто ответ: " Вы не можете получить код авторизации из своего кода PHP ".

...