繁体   English   中英

CreateFreshAPIToken或个人访问令牌。 CreateFreshAPIToken是否可以与AJAX一起使用?

[英]CreateFreshAPIToken or Personal Access Token. And does CreateFreshAPIToken work with AJAX?

我正在制作一个基于API的Web应用程序。 它将包含各种用户,例如普通用户,具有网页更新和删除表格的管理员。 显然会有许多页面,访问将取决于用户范围。 我感到困惑并停留在这一点:

我是否应该在每次用户登录时都生成具有范围的个人访问令牌,并使用该令牌来检查用户的组(是否具有权限)以提供对网页的访问权限以及发出一些请求。

要么

我应该使用CreateFreshApiToken中间件来处理请求,还是应该在登录时检查用户的组,以允许他访问某些网页。

希望您理解我要说的话。

并且CreateFreshApiToken中间件将laravel_token cookie附加到传出响应。 如果我使用的是AJAX,那行得通吗? 如果不是,那是否意味着我将始终必须随请求传递访问令牌?

在第二种情况下,我将使用CreateFreshApiToken中间件,因为从某种意义上说,范围从属于应用程序中的用户组/用户权限/用户角色。

例如,用户一旦登录到您的应用程序就有权下订单和查看订单。 但是,例如使用您的API的移动应用程序的开发人员可以决定仅授予登录此应用程序的用户查看订单的权限,即orders.view范围,而不是下订单的权限。 将此与例如Google API进行比较。 作为Gmail的用户,您有权阅读和删除电子邮件等。但是,当您开发使用Gmail API的应用程序时,您可以决定该应用程序仅需要并且仅会询问用户所需要的范围阅读电子邮件。

因此,使用范围来管理Laravel应用程序中的整个授权层非常薄。 在大多数情况下,最好将应用程序的授权层(用户角色,权限等)与API的授权层(范围)分开。

CreateFreshApiToken中间件旨在通过JavaScript和AJAX使用您的API。 laravel_token后,第一个对Web路由发出的GET请求之后, laravel_token将作为cookie附加到每个AJAX请求中(登录后,Laravel Auth支架会自动向/home发出请求)。 可以在Passport文档的此部分中找到说明: https : //laravel.com/docs/5.4/passport#easing-your-api-with-javascript

个人访问令牌可以视为API密钥。 API使用者可以使用此密钥对您的API进行授权,而无需执行OAuth2流程。 您必须创建一个从JavaScript应用程序到API的代理,才能使用此令牌进行请求,这很奇怪。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM