У меня есть немного кода, который устанавливает файл cookie $userid
а затем перенаправляется следующим образом:
$userid = $_GET['userid'];
setcookie('userid',$userid,time() + (864000 * 7), '/');
header("Location: https://coinbase.com/oauth/authorize?response_type=code&client_id=$clientid&redirect_uri=$redirecturi");
Это прекрасно работает. Если после его установки echo $_COOKIE['userid']
, он отобразит идентификатор пользователя. Все идет нормально.
Переадресация - на страницу Coinbase OAuth, где пользователь должен войти в систему и разрешить моему сайту доступ к своему кошельку. После процесса Coinbase перенаправляет пользователя в $redirecturi
, который является той же страницей, что и установленный код cookie.
Затем я использую $_COOKIE['userid']
чтобы определить, какой пользователь прошел процесс аутентификации и сохранил данные, полученные мной из Coinbase. Кроме того, я проверяю, установлен ли $_GET['code']
, поэтому две части кода разделены (я не случайно устанавливаю $_GET['userid']
как cookie снова).
Примеры URL:
Местоположение сценария: http://example.com/dev/startcoinbase.php?userid=abcdef
URL для пользователя: http://example.com/dev/startcoinbase.php?userid=abcdef
Перенаправление с Coinbase: http://example.com/dev/startcoinbase.php?code=code
Очень странно, что мой код работает отлично, когда вы запускаете из UIwebview в приложении iOS, в Chrome и FF на рабочем столе, но просто не в мобильном браузере Safari (хотя в веб-браузере приложения используется тот же движок!),
Любая помощь будет принята с благодарностью!
Является ли домен И протокол http/https
одинаковым? Файлы cookie для http://example.com
и https://example.com
могут быть разными.
Также будьте осторожны с субдоменами, возможно, sub.example.com
cookie sub.example.com
могут не отображаться на example.com
.
Вы должны проверить (я думаю, что вы это сделали, но если нет, то делайте), если в Safari есть файлы cookie :)
www
илиnon-www
. Не смешивай это. Это имеет большое влияние на Google и SEO вещи :)