0

我想为 responsivefilemanager 使用访问密钥。由于用户可以看到访问密钥(example.com/filemanager/dialog.php?akey=usersaccesskeys),我希望访问密钥是临时的(仅限一次性使用)。但我认为我需要“auth()”和其他功能,如“User::find($user_id)”来做到这一点。无论如何,当我在文件管理器的配置文件中使用 auth() 或控制器函数时出现错误,“调用 /path/to/config/config.php 中的未定义函数 auth()”。我被卡住了,我不想像这样部署我的网站。还有其他方法可以使 responsivefilemanager 安全吗?

我也尝试在 app\Http\Controllers\RfmController.php 中使用控制器 php 文件 其他错误显示“未捕获的错误:类 'App\Http\Controllers\Controller'” 这是 RfmController 扩展的函数。

我正在运行 LAMP 服务器。PHP 7.3.7 Laravel 5.8

在我的 config.php

'access_keys' => array(auth()->user()->name),

通过使用controller.php

在我的 config.php

namespace App\Http\Controllers;
require('/path/to/app/Http/Controllers/RfmController.php');
$rfm = new RfmController;
.
.
.
'access_keys' => array(RFMClass::rfmakey()),

在 RfmController.php 中

namespace App\Http\Controllers;
class RfmController extends Controller
{
    public function rfmakey()
    {
        return auth()->user()->id;
    }
{

我希望 rfmakey() 会返回用户名

4

1 回答 1

0

您需要使用中间件。来自官方 laravel 文档

如果您使用的是控制器,您可以从控制器的构造函数中调用中间件方法,而不是直接将其附加到路由定义中:

public function __construct()
{
    $this->middleware('auth');
}

顺便说一句,我不会将动态值或代码放在我的 config.php 文件中,例如

auth()->user()->name

这不是一个好习惯。

希望此解决方案对您有所帮助!

于 2019-08-11T18:23:34.353 回答