我开始尝试使用 iOS 应用程序的 IGDB API。几天前,IGDB 推出了 V4,现在需要通过 oAuth2 向 Twitch 授权才能接收应用程序访问令牌。
凭借我糟糕的后端知识(我昨天开始学习 NGINX),我设法设置了一个 NGINX Web 服务器,它代理对 IGDB API 的请求并将应用程序访问令牌注入到 HTTP 标头中。目前这工作正常。
我的 proxy.conf 包含在 nginx.conf 中,如下所示:
server {
listen 443 ssl;
server_name myhost.com;
#SSL Config cut out
...
location / {
proxy_pass https://api.igdb.com/v4/games;
proxy_ssl_server_name on;
proxy_set_header Client-ID "MY TWITCH APP CLIENT ID";
proxy_set_header Authorization "Bearer THE_APP_ACCESS_TOKEN";
}
}
Run Code Online (Sandbox Code Playgroud)
然而THE_APP_ACCESS_TOKEN是我手动请求的。出于测试目的,这没问题,但它会在大约 60 天后过期(根据 Twitch 开发文档)。我现在想知道如何动态请求访问令牌(并以某种方式存储它?),在它过期时刷新它并将其注入到 proxy.conf 中。
在研究过程中,我偶然发现了 HTTP Auth Request 模块与 NGINX JavaScript 模块的结合(https://www.nginx.com/blog/validating-oauth-2-0-access-tokens-nginx/)。
现在我想知道在代理请求之前通过身份验证请求模块触发令牌请求是否是一种合理的方法,使用 JavaScript 模块解析 …