Помогите написать простенький скрипт авторизации

InstantCMS 2.X
#1 29 декабря 2017 в 00:21
Здравствуйте! Все перепробывал не получается.
Мне нужно на внешнем файле php просто вводя id в переменную — пользователя его авторизовать в CMS.

Тоесть зайти на этот скрипт-авторизации по адресу а потом на основной сайт и чтобы этот юзер был авторизован уже.
#2 29 декабря 2017 в 00:22
$logged_id=1;
cmsEventsManager::hook('auth_login', $logged_id);
Нашел такую команду но не работает.
Шапка с в хедер встроена все ок
#3 29 декабря 2017 в 02:05
Где в этот хук используете? В своем скрипте? Движок запустили в своем скрипте?
#4 29 декабря 2017 в 02:45


Где в этот хук используете? В своем скрипте? Движок запустили в своем скрипте?

Kreator

да

Шапка php файла состоит из

  1.  
  2. <?php
  3.  
  4. // Определяем корень
  5. define('PATH', dirname(__FILE__));
  6.  
  7. // оставлено для совместимости, если кто-то использовал эту константу
  8. // в CMS не используется нигде
  9. define('ROOT', rtrim($_SERVER['DOCUMENT_ROOT'], DIRECTORY_SEPARATOR));
  10.  
  11. // Устанавливаем кодировку
  12.  
  13. // Подключаем автозагрузчик классов
  14. require_once PATH . '/system/config/autoload.php';
  15.  
  16. // Устанавливаем обработчик автозагрузки классов
  17. spl_autoload_register('autoLoadCoreClass');
  18.  
  19. // Инициализируем конфиг
  20. $config = cmsConfig::getInstance();
  21.  
  22. // дебаг отключен - скрываем все сообщения об ошибках
  23. if(!$config->debug){
  24.  
  25.  
  26. } else {
  27.  
  28.  
  29. // включаем отладку
  30. cmsDebugging::enable();
  31.  
  32. }
  33.  
  34. // Проверяем, что система установлена
  35. if (!$config->isReady()){
  36. $root = str_replace(str_replace(DIRECTORY_SEPARATOR, '/', realpath($_SERVER['DOCUMENT_ROOT'])), '', str_replace(DIRECTORY_SEPARATOR, '/', PATH));
  37. header('location:'.$root.'/install/');
  38. die();
  39. }
  40.  
  41. // Устанавливаем часовую зону
  42. date_default_timezone_set( $config->time_zone );
  43.  
  44. // Подключаем все необходимые классы и библиотеки
  45. cmsCore::loadLib('html.helper');
  46. cmsCore::loadLib('strings.helper');
  47. cmsCore::loadLib('files.helper');
  48. cmsCore::loadLib('spyc.class');
  49.  
  50. // Инициализируем ядро
  51. $core = cmsCore::getInstance();
  52.  
  53. // Подключаем базу
  54. $core->connectDB();
  55.  
  56. if(!$core->db->ready()){
  57. cmsCore::error($core->db->connectError());
  58. }
  59.  
  60. /////////// Запускаем кеш
  61. //
  62. cmsCache::getInstance()->start();
  63. cmsEventsManager::hook('core_start');
  64. //
  65. /////////// Загружаем локализацию
  66.  
  67. cmsCore::loadLanguage();
  68. //
  69. // устанавливаем локаль языка
  70. if(function_exists('lang_setlocale'))
  71. {
  72. lang_setlocale();
  73. }
  74.  
  75. // устанавливаем локаль MySQL
  76. $core->db->setLcMessages();
  77.  
  78.  
  79.  
  80.  
  81.  
  82. //require_once PATH . '/system/core/user.php';
  83.  
  84. $inUser = cmsUser::getInstance();
  85.  
  86. ?>
  87.  
  88. <?
  89. $logged_id=1;
  90. cmsEventsManager::hook('auth_login', $logged_id);
  91. ?>
  92.  
  93.  
И надо прописать команды авторизации пользователя по id

АВТОРИЗОВАТЬ ПОЛЬЗОВАТЕЛЯ с ID 1 которые есть в базе или 2 или 3 и тд.

или по названию логина — не важно.

Чтобы после захода на этот файл пользователь уже был авторизован на сайте.
Хук я взял из других файлов движка но не пашет…
#5 29 декабря 2017 в 03:11
Я бы сделал так:
  1. <?php
  2. require_once 'bootstrap.php';
  3. $logged_id=1;
  4. $model = cmsCore::getModel('users');
  5. $user = $model->getUser($logged_id);
  6. cmsEventsManager::hook('user_login', $user);
  7. cmsUser::setUserSession($user);
  8. $auth_token = string_random(32, $user['email']);
  9. cmsUser::setCookie('auth', $auth_token, 8640000);
  10. $model->setAuthToken($user['id'], $auth_token);
  11. $model->deleteExpiredToken($user['id'], 8640000);
#7 31 декабря 2017 в 17:11

Здравствуйте! Все перепробывал не получается.
Мне нужно на внешнем файле php просто вводя id в переменную — пользователя его авторизовать в CMS.

Тоесть зайти на этот скрипт-авторизации по адресу а потом на основной сайт и чтобы этот юзер был авторизован уже.

@termin2021
если не решил проблему велкам лс, помогу)
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.