Nextcloud внешний логин для пользователей в другой базе данных
У меня есть установка Nextcloud, пользователи хранятся во внешней базе данных, и это прекрасно работает с этим приложением: https://apps.nextcloud.com/apps/user_sql
Имея это, я могу войти в свой экземпляр Nextcloud через форму входа, предоставленную Nextcloud.
Мне нужно для автологов пользователей, когда они приходят из другого приложения.
Я написал PHP-скрипт, расположенный в корне моей установки Nextcloud, и он вызывается другими внутренними приложениями моей компании.
Этот сценарий получает идентификатор пользователя и токен в URL. После успешной проверки (не нужно вводить детали здесь), этот скрипт должен войти в систему пользователя.
Какой API я должен вызвать, чтобы пользователь вошел в систему?
Я попробовал следующее, но безуспешно:
OC_User::login(...)
OC_User::getUserSession()->login(...)
Есть ли способ активировать действительный вход в систему, чтобы пользователи могли войти в систему?
Спасибо за ваши ответы, ребята!
1 ответ
$user = '';
$pass = '';
$s = \OC::$server->getUserSession();
if (!$s->isLoggedin()) $s->login($user, $pass);
else $s->logout();
Размещение этого в /index.php
и перед звонком OC::handleRequest()
делает трюк. Это не работает, как ожидалось, но вы можете попытаться продолжить отсюда.
PD: Nextcloud Server v14.0.0 Alpha