Laravel-将中间件与令牌一起使用临时文件访问



我想允许用户在外部应用中打开视频。对于用户,我要创建一个临时(随机(令牌。我知道风险(用户可以共享链接/令牌(,也许想添加IP/设备限制器。由于这不是严肃/家庭项目,因此我只想在处理中间件时了解最佳实践。:(

class VideoController extends Controller
{
    /**
     * @param AssetRequest $request
     *
     * @return mixed
     * @throws FileNotFoundException
     */
    public function show(AssetRequest $request)
    {
        // Get token, valid against user_id, asset
    }
}

可以使用中间件吗?

<?php
namespace AppHttpMiddleware;
use Closure;
use IlluminateHttpRequest;
class AuthenticateWithToken
{
    /**
     * Handle an incoming request.
     *
     * @param  Request $request
     * @param  Closure $next
     *
     * @return mixed
     */
    public function handle(Request $request, Closure $next)
    {
        // Valid token here
        return $next($request);
    }
}

还是这不是中间件的任务?我应该使用guest中间件吗?

谢谢!

我认为上面的文档是要去的地方。

所以例如,您会做类似:

的事情
<?php
namespace AppHttpMiddleware;
use Closure;
class CheckToken
{
    /**
     * Handle an incoming request.
     *
     * @param  IlluminateHttpRequest  $request
     * @param  Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if (!isTokenExpired($token)) { // logic to check if token has access
            return redirect('myTempAppRouterNameHere');
        }
        return $next($request);
    }
}

然后,请确保您查看注册部分并实施适用于您的任何内容。我认为使用中间件是实现您要做的事情的简便方法。

这是一些不错的资源:

laravel 5.5:http://itsolutionstuff.com/post/laravel-55-create-custom-middle-middle-wareware-example-example.html

https://medium.com/@sharad35386442/laravel-5-5-5-middleware-complete-tutorial-tutorial-44df4d8f4d61c4b

Laravel 5.1:https://tutorialedge.net/php/laravel/laravel-5-middleware-tutorial/

https://laracasts.com/discuss/Channels/laravel/custom-requests-in-middleware

最新更新