【发布时间】:2017-11-29 16:49:55
【问题描述】:
我正在构建一个 Angular 2/4 应用程序来访问 laravel 5.4 中的 API。 我对如何通过角度检查后端的身份验证/权限有疑问。 我需要检查用户是否已登录以及他是否有权继续。 我通过“Guards”在 Angular 中执行此操作。 例如,如果用户在 Angular 中访问“Edit-User”路由,首先,里面的守卫调用 ok? 在 Guard 中,它有 1 个步骤: 它在 Laravel 发出一个 http 请求以检查用户是否可以继续。 该请求通过中间件获取 Laravel 中 Edit-User Route 的回调,也就是说,Angular 在 Laravel 发出请求,因此,Laravel 会检查用户是否已登录并具有权限,然后返回一个布尔值, 守卫授权用户访问或不授权 Angular 中的 Edit-Route。 此时可以,但是当用户在 Angular 中进入 Edit-Route 时,Angular 需要再做一次请求以获取用户数据以显示在表单中,为此,Laravel 会检查更多时间,如果用户是登录并获得他的许可。 所以,我的问题是,是否有办法更好地思考这种情况?因为我要检查两次权限才能访问一条路线。
【问题讨论】:
-
我不知道 Laravel,但它看起来像任何其他 API 身份验证问题。为什么不在 init 上打一个电话来获取用户,并将其存储在服务或其他东西中。然后,当导航到受保护的页面时,您可以依靠该用户来授权对该页面的访问。加载页面时,从 API 获取数据的调用(在您的示例中是您的第二次调用)将断言用户实际上有权访问该页面。
标签: angular authorization angular2-routing laravel-5.4