1

我有一个 Nextcloud 安装,用户存储在外部数据库中,这适用于这个应用程序:https ://apps.nextcloud.com/apps/user_sql

有了这些,我可以通过 Nextcloud 提供的登录表单登录我的 Nextcloud 实例。

当他们来自另一个应用程序时,我需要自动记录用户。

我编写了一个 PHP 脚本,放置在 Nextcloud 安装的根目录中,它被我公司的其他内部应用程序调用。

此脚本在 URL 中接收用户 ID 和令牌。成功检查后(无需在此处获取详细信息),此脚本应将用户登录到.

我应该调用哪个 API 来让用户登录?

我尝试了以下方法,但没有成功:

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

有没有办法触发有效的登录,以便我可以让用户登录?

谢谢你们的回答,伙计们!

4

1 回答 1

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

于 2018-01-22T17:30:15.517 回答