我想允许用户在外部应用中打开视频。对于用户,我要创建一个临时(随机(令牌。我知道风险(用户可以共享链接/令牌(,也许想添加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