嵌套基于 PIN 的身份验证和 PIN 提取



应用程序的背景:

嵌入式系统,将作为客户端连接到嵌套 API 以检索所需数据。该嵌入式系统可以连接到wifi网络,并提供一个Web界面,用户可以通过该界面进行身份验证。

对于身份验证,当前用户被定向到

https://home.nest.com/login/oauth2...

用户可以执行授权程序并获得 8 个字符的 PIN。然后要求用户在文本框中输入此 PIN 并将其提交给嵌入式 Web 服务器,然后嵌入式 Web 服务器请求access_token(使用 C 平台)。

有两个

问题与此问题相关:

1)有没有办法也从客户端浏览器执行access_token请求,并且只将access_token返回给嵌入式系统?在用户输入PIN并提交后,是否有任何Javascript代码可以请求access_token?

2)第二个问题与缺乏自动化有关。用户需要在 Web 界面中重新键入 PIN。有没有办法使用某些脚本自动从网站中提取 PIN。例如,打开嵌入在另一个页面中的/login/oauth2 页面,并在主页上运行脚本以继续扫描嵌入页面,直到 PIN 可用(即用户登录并授予权限)。一旦可用,就可以将其复制并返回到设备网络,并access_token自动请求。

我知道这种类型的自动化可以通过基于 Web 的身份验证来实现,但据我了解,这将需要一个代理服务器来重定向 URI。这个想法是使设备自给自足,而无需维护另一台服务器。

  1. 是的,请参阅 control-jquery 示例代码,了解如何在 JavaScript 中使用 OAuth 令牌的示例
  2. Nest 允许您使用以 http://localhosthttps:// 开头的地址作为 OAuth 重定向 URI。您可以在本地运行 Web 服务器,也可以监视 WebView 以获取您选择的重定向 URI 模式并分析结果。

最新更新