Laravel 应用与第 3 方交互 API 以获取令牌
Laravel app interacting with a 3rd party API to get a token
我有一个带有 GUI 的 Laravel 应用程序,用户可以根据 MySQL 数据库中的数据登录。
当用户登录时,服务器需要向第 3 方的特定端点发出请求 API 以获得令牌。此令牌来自该请求的响应,并且由于它是某种 session 令牌,它会不时更新(这意味着如果抛出特定错误,则应调用检索令牌的同一请求).
在某些特定的视图/路由中,控制器中的关联逻辑意味着向第三方 API 的一个或多个端点发出请求,并在 body 或 headers - 取决于端点。
我最关心的是是否有人可以访问该特定令牌。如果发生这种情况,那么他们可能会与第 3 方 API 互动并造成不必要的混乱。因此,如果页面或操作需要更长的时间,我可以接受,只要实施的过程非常安全(发生前一种情况的风险极低)。
我的目标程序是什么?所需的答案将利用 Laravel“机器”并参考应将此令牌存储在何处以及如何存储。
在Web开发中,这种情况通常使用CSRF令牌来处理,以确保正确用户发送请求。
根据你的问题我假设:
你的前端向第三方发送请求Api.
如果您的第三方库支持 CSRF 保护
我的建议是使用代理设计模式:
- 前端调用我们后端的路由。
- 你的后端路由(扮演代理角色)请求第三方库和
session("third_party_session_token")
- 仅第三方响应您的后端。
- 后端return响应前端。
所以这样一来,第三库的Token只会留在后台
第三方 Api-令牌存储在 用户会话 space .
可以使用laravel加密,如果担心session数据泄露:
session->put("third_party_api_token",Crypt::encryptString($api_token));
并在您想要第三方时检索它:
$api_token = Crypt::decryptString(session()->get("third_party_api_token"));
在加密任何内容之前,您必须使用以下方法生成密钥:
php artisan key:generate
我有一个带有 GUI 的 Laravel 应用程序,用户可以根据 MySQL 数据库中的数据登录。
当用户登录时,服务器需要向第 3 方的特定端点发出请求 API 以获得令牌。此令牌来自该请求的响应,并且由于它是某种 session 令牌,它会不时更新(这意味着如果抛出特定错误,则应调用检索令牌的同一请求).
在某些特定的视图/路由中,控制器中的关联逻辑意味着向第三方 API 的一个或多个端点发出请求,并在 body 或 headers - 取决于端点。
我最关心的是是否有人可以访问该特定令牌。如果发生这种情况,那么他们可能会与第 3 方 API 互动并造成不必要的混乱。因此,如果页面或操作需要更长的时间,我可以接受,只要实施的过程非常安全(发生前一种情况的风险极低)。
我的目标程序是什么?所需的答案将利用 Laravel“机器”并参考应将此令牌存储在何处以及如何存储。
在Web开发中,这种情况通常使用CSRF令牌来处理,以确保正确用户发送请求。
根据你的问题我假设:
你的前端向第三方发送请求Api.
如果您的第三方库支持 CSRF 保护
我的建议是使用代理设计模式:
- 前端调用我们后端的路由。
- 你的后端路由(扮演代理角色)请求第三方库和
session("third_party_session_token")
- 仅第三方响应您的后端。
- 后端return响应前端。
所以这样一来,第三库的Token只会留在后台
第三方 Api-令牌存储在 用户会话 space .
可以使用laravel加密,如果担心session数据泄露:
session->put("third_party_api_token",Crypt::encryptString($api_token));
并在您想要第三方时检索它:
$api_token = Crypt::decryptString(session()->get("third_party_api_token"));
在加密任何内容之前,您必须使用以下方法生成密钥:
php artisan key:generate