如何解决如何在没有网址的后台作业中使用OAuth
我们正在使用一些允许oauth身份验证的公共API。而且我们有一个计划的作业(cron作业)在后台运行,没有URL。
我认为可以在旁边安装服务器,但是我们不想这样做。有人可以提出解决方法以在后台作业中实现身份验证吗?谢谢。
解决方法
这是oauth2客户端凭据授予的目的。如果您有可用的授权服务器支持client_credentials授予,那么这是您的最佳选择。
后台作业将能够通过client_credentials授予从授权服务器中获取令牌,并使用客户端ID和密钥进行身份验证,并接收令牌作为回报。然后,所获得的令牌可用于访问资源(在本例中为API)。
POST /token HTTP/1.1
Host: authorization-server.com
grant_type=client_credentials
&client_id=xxxxxxxxxx
&client_secret=xxxxxxxxxx
例如参见https://www.oauth.com/oauth2-servers/access-tokens/client-credentials/
,如果OAuth授予需要最终用户的授权,则您需要在从OAuth流程中获取访问令牌的过程(通常是Web服务器)与需要它的过程之间共享访问令牌(您的背景工作)。
如果您打算长时间使用令牌,则可能需要刷新令牌,以便无需用户干预即可获取新的访问令牌。为此,创建了刷新令牌(Google甚至调用了用于请求一个offline_access
的参数)。
如果您不想设置服务器来处理重定向,则可以使用Xkit之类的托管服务。它管理用户交互,您的后台作业可以仅使用API密钥来检索有效的访问令牌。 披露:我在Xkit工作
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。