在无UI(仅后端)应用中使用OAuth2连接到API的最佳实践?[已关闭]

mfpqipee  于 2023-10-15  发布在  其他
关注(0)|答案(1)|浏览(75)

已关闭,此问题为opinion-based。它目前不接受回答。
**想改善这个问题吗?**更新问题,以便editing this post可以用事实和引用来回答。

上个月关门了。
Improve this question
我想有一个预定的工作,连接到Quickbooks在线在每天结束时注入发票。
这是我第一次使用OAuth。
由于我的应用程序没有UI,我使用Postman从我的客户端ID和客户端密码生成授权代码。但是,我只有5分钟的时间将它插入到我的项目中,并为它请求访问令牌。如果我做得足够快,我会得到一个访问令牌,从那里一切都很好。
由于我的计划作业将在每晚运行,因此我可以使用有效期为100天的刷新令牌来刷新访问令牌。只要它至少每100天运行一次,我应该很好(不是真的担心那部分)。
但我想知道当我将部署到新环境时,如何管理初始设置过程?当项目部署到新环境中时,手动请求授权码并立即将其保存到数据库(或Redis),然后快速运行负责获取第一个访问令牌的脚本是没有意义的。
有什么建议吗?

ej83mcc0

ej83mcc01#

使用客户端凭据授予,它通常用于不需要特定用户访问数据的权限的机器对机器身份验证。您需要将您的工作注册为机密客户,其余的都很简单。您的作业将向授权服务器进行身份验证并获得access_token,无需使用refresh_token,您的作业/应用程序/脚本/服务器每次只需使用其client_idclient_secret即可获得新令牌。
您可以使用以下示例curl请求来获取访问令牌:

curl -X POST "https://authorization-server.com/oauth/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -u "CLIENT_ID:CLIENT_SECRET" \
     -d "grant_type=client_credentials" \
     -d "scope=your_scope"

发出请求后,您将收到一个包含访问令牌的JSON响应:

{
  "access_token": "your_access_token",
  "token_type": "bearer",
  "expires_in": 3600
}

相关问题