У меня есть немного кода, который устанавливает это $userid
cookie, а затем перенаправляет его следующим образом:
$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");
Это отлично работает. Если я эхо $_COOKIE['userid']
после установки он отображает идентификатор пользователя. Все идет нормально.
Перенаправление на страницу OAuth Coinbase, где пользователь должен войти в систему и разрешить моему сайту доступ к своему кошельку. После завершения процесса Coinbase перенаправляет пользователя на $redirecturi
, на той же странице, что и заданный код cookie.
Я тогда использую $_COOKIE['userid']
определить, какой пользователь прошел процесс аутентификации, и сохранить данные, полученные от Coinbase. Кроме того, я проверяю, если $_GET['code']
установлено, поэтому две части кода разделены (я не случайно настройки $_GET['userid']
как печенька опять).
Пример 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
тот же самый? Печенье для http://example.com
а также https://example.com
может быть другим.
Также будьте осторожны с поддоменами, может быть sub.example.com
куки могут быть не видны на example.com
,
Вы должны проверить (я думаю, что вы сделали, но если нет, то сделайте), если у вас включены файлы cookie в Safari 🙂
Других решений пока нет …