如何进行非交互式oauth2 api调用



我有一个Wordpress cron脚本,它以固定的间隔调用OAuth2api。OAuth2授权需要用户访问网页;允许";按钮进行授权,这在非交互式环境中是不可能的。我想知道处理这个问题的标准方法。我希望我能把client_id和client_secret放在php脚本中,然后全部完成。毕竟,用户和脚本开发人员都是一样的:我自己,应该不需要做授权。

您可以使用file_get_contents、$http_response_header和stream_context_create使用pkce模拟完整的身份验证代码流。

脚本的步骤如下:

  1. 构建authorization_url并获取请求
  2. 检测到重定向到登录页面,从html中grepcsrf token
  3. 发布usernamepasswordcsrf token并检测重定向url以授权页面
  4. 解析authorize页面,grepcsrf token(如果有(并发布以接受权限
  5. 检测回调url并从get参数中获取code
  6. token_url发布code和其他要求,并对接收到的令牌进行解码

我为OpenId Connect项目创建了这样的脚本,但它没有登录和授权页面。你可以在这里找到一个例子:https://github.com/ronvanderheijden/openid-connect/blob/main/example/get_tokens

最新更新