申请背景:
嵌入式系统将作为客户端连接到 nest-api 以检索所需的数据。该嵌入式系统可以连接到 wifi 网络,并提供一个 Web 界面,用户可以通过该界面进行身份验证。
对于身份验证,当前用户被定向到
https://home.nest.com/login/oauth2 ...
用户可以执行授权程序并获得一个 8 字符的 PIN。然后要求用户在文本框中输入此 PIN 并将其提交给嵌入式 Web 服务器,然后请求 access_token(使用 C 平台)。
这个问题有两个问题:
1)有没有办法从客户端浏览器也执行对 access_token 的请求,并且只将 access_token 返回给嵌入式系统?用户输入 PIN 并提交后可以请求 access_token 的任何 Javascript 代码?
2)第二个问题与缺乏自动化有关。用户需要在 Web 界面中输入 PIN。有没有办法使用一些脚本自动从网站中提取 PIN。例如,打开嵌入在另一个页面中的 /login/oauth2 页面并在主页上运行脚本以继续扫描嵌入的页面,直到 PIN 可用(即用户登录并授予权限)。一旦它可用,就可以将其复制并返回到设备 web 并自动请求 access_token。
我知道这种类型的自动化可以通过基于 Web 的身份验证来实现,但据我了解,这需要代理服务器来重定向 URI。这个想法是使设备自给自足,而无需维护另一台服务器。