【问题标题】:Checking User Authorization in Angular 2/4 + API在 Angular 2/4 + API 中检查用户授权
【发布时间】: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


【解决方案1】:

当第一次认证用户时,所有的权限必须被接收并保存在客户端的权限存储中。例如,您可以使用Ng2-Permission 在权限存储中保留权限。

在对用户进行身份验证并获得其所有权限后,我们假设客户端已通过身份验证,直到没有收到来自响应的 401403 代码。通过商店中的权限进行授权检查。

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 2020-03-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-11
    • 1970-01-01
    • 1970-01-01
    • 2017-11-13
    相关资源
    最近更新 更多