在laravel中实现角度路由的中间件

时间:2018-04-08 16:32:56

标签: angular routes middleware

我想用 laravel 保护一些角度路线。 在 laravel 中,我可以轻松使用中间件来保护路线方法,但由于我的角度路线喜欢" 创建帖子"或" 编辑帖子"不是在后端结构,我不能使用laravel中间件那些.. 我该怎么办 ? 如果他们是管理员,我应该如何保护他们,这样他们就可以看到"创建帖子"有角度路线的页面......

1 个答案:

答案 0 :(得分:0)

如果您真的想使用laravel的中间件而不是在Angular中制作中间件,您可以随时在Laravel中创建API路由,发出HTTP请求,然后通过laravel中间件。根据您的要求,您可以发送200响应或任何其他您喜欢的响应。这样,您仍然可以通过Laravel验证请求并在Angular中读取响应。但是我建议尽可能使用基于Angular的中间件。

我不是Angular的专家,但据我所知,你有拦截器,它们非常适合创建自己的验证规则=>中间件。

接下来,在您提出的问题中

  

如果他们是管理员,我该如何保护他们,以便他们可以看到"创建帖子"有角度路线的页面......

中间件通常不会处理您在页面上看到的内容。中间件用于验证http请求。您的视图中的小示例,以确保用户无法看到"创建帖子"视图中的页面将是

@if(Auth::check() & Auth::user()->is_admin)
    <a href="route('admin.post.create')">Create post</a>
@endif

这应该足以确保只有管理员才能看到创建帖子页面。为了确保用户无法访问该页面,如果他们手动将其设置为中间件。

public function handle($request, Closure $next, $guard = null)
{
    if(Auth::check() & Auth::user()->is_admin) return $next($request);
    return abort(401)
}