2017-02-21 3 views
1

ich eine Nextcloud Installation habe, mit in einer externen Datenbank gespeichert Benutzern, und das funktioniert mit dieser App fein: https://apps.nextcloud.com/apps/user_sqlNextcloud externes Login für Benutzer in einer anderen Datenbank

, die mit an Ort und Stelle, kann ich auf meiner Nextcloud Instanz anmelden über das von Nextcloud bereitgestellte Login-Formular.

Ich muss die Benutzer automatisch anmelden, wenn sie von einer anderen App kommen.

Ich habe ein PHP-Skript geschrieben, das am Anfang meiner Nextcloud-Installation steht und von anderen internen Apps meiner Firma aufgerufen wird.

Dieses Skript erhält eine Benutzer-ID und ein Token in der URL. Nach einer erfolgreichen Überprüfung (keine Notwendigkeit, in die Details hier zu gelangen), dieses Skript sollte den Benutzer in protokollieren.

Welche API soll ich aufrufen, um den Benutzer eingeloggt zu bekommen?

ich folgende versucht, ohne Erfolg:

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

Gibt es eine Möglichkeit, eine gültige Anmeldung auszulösen, so dass ich die Benutzer angemeldet bekommen?

Vielen Dank für Ihre Antworten, Leute!

Antwort

0
$user = ''; 
$pass = ''; 
$s = \OC::$server->getUserSession(); 
if (!$s->isLoggedin()) $s->login($user, $pass); 
else $s->logout(); 

platzieren diese bei /index.php und vor OC::handleRequest() funktioniert der Trick aufrufen. Es funktioniert nicht wie erwartet, aber Sie könnten versuchen, von hier fortzufahren.

PD: Nextcloud Server v14.0.0 Alpha

+0

Vielen Dank für Ihre Antwort! – FruityFred

+0

Um fair zu sein ... das einzige, was ich tun konnte, war, die Login-Felder automatisch zu füllen und ein Klick-Ereignis auf der Login-Schaltfläche mit JavaScript zu versenden –

Verwandte Themen