【发布时间】:2018-11-16 15:54:14
【问题描述】:
问题
我正在使用 jQuery AJAX 调用来访问我的应用程序的 API。由于我的Javascript 文件在技术上可供公众访问,因此我无法将 API 凭据放入此文件中。访问受保护 API 的 Web 路由由middleware 保护,该middleware 检查用户是否具有访问权限。从技术上讲,只要给定正确的url,就可以访问js 文件。管理页面仍然无法访问,但现在可以访问 API。
问题
我想知道是否有办法
A) 使用会话 cookie 获取用户并检查该用户是否是管理员。
或
B) (首选)使 js 文件只能被使用它们的网络路由访问(在我的例子中,管理员路由)
或
C)我显然没有看到的另一个选项可以解决我的问题。
我正在为 API 路由使用 Laravel 的 Passport API 身份验证。
PS:每次手动输入凭据不是一种选择。这些路线通常需要快速访问。
【问题讨论】:
-
我可以知道您存储访问令牌的方式和位置吗?如果用户正在传递访问令牌,那么您可以从那里获取用户范围(例如管理员、其他角色)。
-
只有 2 个角色,admin 和 non-admin,我用中间件检查了 web 路由的角色。 API 令牌和 API 客户端驻留在各自的护照生成表中。
标签: php laravel laravel-5.3 laravel-passport