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

时间:2014-11-17 06:58:20

标签: javascript oauth-2.0 nest-api embeddedwebserver

申请背景:

将作为客户端连接到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。这个想法是让设备自给自足,而无需维护另一台服务器。

1 个答案:

答案 0 :(得分:0)

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