我想使用响应文件管理器的访问键。 由于用户可以看到访问密钥(example.com/filemanager/dialog.php?akey=usersaccesskeys),因此我希望访问密钥是临时的(仅一次性使用)。但是我想我需要“ auth()”和其他函数,例如“ User :: find($ user_id)”来做到这一点。 无论如何,当我在文件管理器的配置文件中使用auth()或控制器功能时,都会出现错误,“在/path/to/config/config.php中调用未定义的函数auth()”。 我被困住了,我不想这样部署我的网站。 还有其他方法可以确保响应文件管理器安全吗?
我也尝试过在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()返回用户名
答案 0 :(得分:0)
您需要使用中间件。来自official laravel documentation:
如果您使用的是控制器,则可以从控制器的构造函数中调用中间件方法,而不是将其直接附加到路由定义中:
public function __construct()
{
$this->middleware('auth');
}
顺便说一句,我会避免在config.php文件中放置动态值或代码,例如
auth()->user()->name
这不是一个好习惯。
希望此解决方案对您有所帮助!