PHP Переменные сессии не работают, если мы устанавливаем их, если условия - PullRequest
0 голосов
/ 01 мая 2020

Я работаю над реализацией аутентификации OAUTH2.0 с использованием php. У меня есть следующий фрагмент кода, полученный из inte rnet.

// Start the login process by sending the user to Github's authorization page
if(get('action') == 'login') {
  unset($_SESSION['access_token']);
  unset($_SESSION['access_token_postman']);

  if(isset($_SERVER['HTTP_AUTHORIZATION'])){
    $_SESSION['access_token_postman'] = $_SERVER['HTTP_AUTHORIZATION'];
  }

  // Generate a random hash and store in the session for security
  $_SESSION['state'] = hash('sha256', microtime(TRUE).rand().$_SERVER['REMOTE_ADDR']);

  $params = array(
    'client_id' => OAUTH2_CLIENT_ID,
    'redirect_uri' => OAUTH2_REDIRECT_URI,
    'scope' => 'user',
    'state' => $_SESSION['state']
  );
  // Redirect the user to Github's authorization page
  header('Location: ' . $authorizeURL . '?' . http_build_query($params));
  die();
}

Я инициализировал сеанс с помощью session_start (); вверху.

Но проблема, с которой я сталкиваюсь, заключается в том, что я не могу получить доступ к $ _SESSION ['access_token_postman'] после условия if. Я знаю, что значение установлено в условии if, так как я могу напечатать его в условии if.

Та же проблема также и с $ _SESSION ['state']. Я не могу получить доступ к сеансу после условия if.

Может кто-нибудь сообщить мне, какую ошибку я делаю?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...