• Как авторизоваться с помощью одноклассников?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Ключ доступа (access_token) будет передан на страницу возврата, после авторизации пользователя.

    Этот ключ необходимо выдернуть из адресной строки браузера и использовать для работы с API.

    Вот на этой странице описан весь процесс.

    1. Необходимо сформировать адрес для авторизации на основе шаблона (в одну строку, я разбил на несколько, чтобы влезло на один экран):
    https://connect.ok.ru/oauth/authorize?client_id={clientId}&scope={scope}&
    response_type=token&redirect_uri={redirectUri}&
    layout={layout}&state={state}

    response_type=token, чтобы сервер Одноклассники вернул access_token в дополнительных параметрах (hash) страницы возврата.

    Вместо {clientId} необходимо указать идентификатор своего приложения.

    {scope} - права доступа, можно не указывать. Как минимум: VALUABLE_ACCESS;PHOTO_CONTENT, чтобы иметь возможность получить данные профиля пользователя.

    {redirectUri} - страница возврата, на которой должен быть код (в данном случае код JavaScript), который извлечет из адреса полученный ключ доступа, ну или обработает ситуацию, если в процессе авторизации произойдет какая-нибудь ошибка или пользователь откажется давать права приложению.

    {layout} - тип окна, скорее всего подойдет m - модальное окно, или a - упрощенное.

    {state} - можно указать любое свое значение, которое будет передано в исходном виде на страницу возврата. Обычно используется для передачи собственного идентификатора сессии авторизации, либо идентификатора локального пользователя, чтобы можно было понять, какой именно собственный (локальный) пользователь проходит авторизацию. Этот параметр использовать не обязательно.

    В итоге адрес страницы авторизации может быть примерно таким (в одну строку):
    https://connect.ok.ru/oauth/authorize?client_id=000000000&
    scope=VALUABLE_ACCESS;PHOTO_CONTENT&response_type=token&
    redirect_uri=https://localhost/auth_result.html&layout=m

    На локальном сервере можно создать страницу https://localhost/auth_result.html с кодом обработки результатов (см. п2).

    2. Сделать страницу возврата (redirect_uri) и написать код извлечения ключа доступа и обработку ошибок.

    При клиентской авторизации (response_type=token), сервер Одноклассники вернет параметры ответа в дополнительных параметрах документа (hash) в URL, которые можно найти в свойстве window.location.hash:
    <script>
      alert(window.location.hash);
      // берем hash из url и разбиваем на массив по символу &
      var params = window.location.hash.substr(1).split('&');
      // перебираем массив
      for (var i = 0; i < params.length; i++)
      {
        // разбиваем текущий элемент массив на новый массив по знаку =
        var p = params[i].split('=');
        // на выходе будет два элемента ключ-значение
        // проверяем имя ключа
        if (p[0] == 'access_token')
        {
          // показываем значение
          alert('Нашли ключ доступа: ' + p[1]); 
        }
      }
    </script>
    Ответ написан
  • Как импортировать excel в mysql?

    MaxDukov
    @MaxDukov
    впишусь в проект как SRE/DevOps.
    LOAD DATA INFILE
    инструкция
    работает
    Ответ написан
    Комментировать
  • Как исправить ошибку в codeigniter?

    littleguga
    @littleguga
    Не стыдно не знать, а стыдно не интересоваться.
    Попробуйте так:
    public function regstrAuth()
    
        // 'book_name' would be the name of your column in database table
    
        $data = array(
        'login' => $this->input->post('login'),
        'passowrd' => $this->input->post('passowrd'),
        'email' => $this->input->post('email'),
        'age' => $this->input->post('age')
        );
    
        $this->db->set($data);
        $this->db->insert('users');
    
    }

    Форма должна быть такой:
    <input type="text" name="login" value="" />
    <input type="text" name="passowrd" value="" />
    <input type="text" name="email" value="" />
    <input type="text" name="age" value="" />


    И Вы уверены, что passowrd, а не password? Опечатки нет?
    Ответ написан
    3 комментария
  • Как преобразовать объект на fetch?

    seoperin
    @seoperin
    Full stack web developer. Laravel / Vue
    попробуй заменить ->get() на ->first()
    Ответ написан
    1 комментарий
  • Где ошибка в javascripte?

    @lnked
    так работает:
    var asa = {
    	age: 15,
    	name: "gexam",
    	color: "sev"
    }
    var bas = prompt("mi ban", "");
    document.write(asa[bas])
    Ответ написан
    Комментировать