Php Laravel应用程序与第三方API交互以获取令牌

Php Laravel应用程序与第三方API交互以获取令牌,php,laravel,api,security,token,Php,Laravel,Api,Security,Token,我有一个带有GUI的Laravel应用程序,用户可以根据MySQL数据库中的数据登录 当用户登录时,服务器需要向第三方API的特定端点发出请求以获取令牌。该令牌在该请求的响应中出现,并且由于它是某种会话令牌,因此它会不时更新(这意味着如果抛出特定错误,则应调用检索该令牌的同一请求) 在某些特定视图/路由中,控制器中的关联逻辑意味着向该第三方API的一个或多个端点发出请求,请求主体或报头中包含先前获取的令牌,具体取决于端点 我最担心的是是否有人可以访问特定的令牌。如果发生这种情况,那么他们可能会与

我有一个带有GUI的Laravel应用程序,用户可以根据MySQL数据库中的数据登录

当用户登录时,服务器需要向第三方API的特定端点发出请求以获取令牌。该令牌在该请求的响应中出现,并且由于它是某种会话令牌,因此它会不时更新(这意味着如果抛出特定错误,则应调用检索该令牌的同一请求)

在某些特定视图/路由中,控制器中的关联逻辑意味着向该第三方API的一个或多个端点发出请求,请求主体或报头中包含先前获取的令牌,具体取决于端点

我最担心的是是否有人可以访问特定的令牌。如果发生这种情况,那么他们可能会与第三方API交互,造成不必要的混乱。因此,只要实现的过程非常安全(前一个场景发生的风险非常低),如果页面或操作花费的时间稍长,我就可以


我应该针对什么程序?所需的答案将利用Laravel“机械”,并指出此令牌应存储在何处以及如何存储。

在Web开发中,此场景通常使用CSRF令牌处理,以确保正确的用户已发送请求

根据你的问题,我假设:

  • 您的前端向第三方Api发送请求

  • 如果您的第三方库支持CSRF保护

我的建议是使用代理设计模式

  • 前端调用后端中的路由
  • 您的后端路由(扮演代理角色)使用
    会话请求第三方库(“第三方会话令牌”)
  • 第三方仅响应您的后端
  • 后端返回对前端的响应
  • 这样,第三个lib标记将只保留在后端

    第三方Api令牌存储在用户会话空间中

    如果您担心会话数据泄漏,可以使用laravel加密:

    session->put("third_party_api_token",Crypt::encryptString($api_token));
    
    并在您希望访问第三方时检索它:

    $api_token = Crypt::decryptString(session()->get("third_party_api_token"));
    
    在加密任何内容之前,必须使用以下方法生成密钥:

    php artisan key:generate
    

    您可以将会话令牌存储在数据库中,最好是加密的。当你需要的时候,你可以使用一些属性变量来解密它。然后必须确保在PHP端执行所有第三方API请求。