2017-02-21 10 views
1

У меня есть установка Nextcloud, с пользователями, хранящихся во внешней базе данных, и это прекрасно работает с этим приложением: https://apps.nextcloud.com/apps/user_sqlNextcloud внешнего Логин для пользователей в другой базе данных

С, что на месте, я могу войти в моем случае Nextcloud через форму входа, предоставленную Nextcloud.

Мне нужно авторизовать пользователей, когда они приходят из другого приложения.

Я написал PHP-скрипт, расположенный в корне моей установки Nextcloud, и его вызывают другие внутренние приложения моей компании.

Этот скрипт получает идентификатор пользователя и токен в URL-адресе. После успешной проверки (не нужно входить в подробности здесь), этот скрипт должен зарегистрировать пользователя в.

Какой API я должен позвонить, чтобы войти в систему?

Я попытался следующие, но безуспешно:

  • OC_User::login(...)
  • OC_User::getUserSession()->login(...)

Есть ли способ, чтобы вызвать правильный логин, так что я могу получить пользователи вошли?

Благодарим за ответы, ребята!

ответ

0
$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

+0

Благодарим за ответ! – FruityFred

+0

Чтобы быть справедливым ... единственное, что я мог сделать, - это автоматически заполнить поля входа и отправить событие click на кнопку входа с помощью JavaScript –