Javascript 我可以在没有服务器的情况下使用OpenID吗?

Javascript 我可以在没有服务器的情况下使用OpenID吗?,javascript,openid,client-side,Javascript,Openid,Client Side,我想编写一个JS应用程序,使用openid对用户进行身份验证。它将完成所有工作,然后将效果传递给某个父Web应用程序。这里的问题是,我不想使用任何类型的服务器——只是本地JS发送消息重定向之类的东西。我知道这很奇怪,但我正在编写的应用程序非常具体,需要它。因此,问题是: -有可能吗? -有现成的解决方案吗? 如果这是不可能的,你能告诉我在什么时候它会失败吗?我读过OpenID规范,但找不到这样的观点。是的,这应该是完全可能的 JS从OpenID提供程序获取令牌 令牌保存在某处(例如cookie

我想编写一个JS应用程序,使用openid对用户进行身份验证。它将完成所有工作,然后将效果传递给某个父Web应用程序。这里的问题是,我不想使用任何类型的服务器——只是本地JS发送消息重定向之类的东西。我知道这很奇怪,但我正在编写的应用程序非常具体,需要它。因此,问题是: -有可能吗? -有现成的解决方案吗?
如果这是不可能的,你能告诉我在什么时候它会失败吗?我读过OpenID规范,但找不到这样的观点。

是的,这应该是完全可能的

  • JS从OpenID提供程序获取令牌
  • 令牌保存在某处(例如cookie或HTML5本地存储)
  • JS重定向到OpenID登录
  • JS处理回调

这里没有任何东西可以阻止您这样做,除了它有点非正统,而且绝对没有提供任何安全性,就像任何纯客户端登录系统一样

“我知道这很奇怪,但我正在编写的应用程序非常具体,需要它。”我想你有XY问题。很有可能,我绝对知道这一点。想想可能的原因,我不是在说X。你能更具体地谈谈安全性吗?我的意思是,我正在努力解决一些潜在的威胁,但也许我没有看到什么。@niv好好想想。如果一切都是用运行客户端的Javascript实现的,那么我,用户,就可以完全控制脚本。我可以打开浏览器的调试屏幕,整天摆弄你的脚本。如果愿意,我可以注释掉整个登录过程。由于没有用户无法触摸的可信组件,因此没有安全性。你不妨向用户询问他的电子邮件地址,跳过整个OpenID过程,以获得它为你提供的所有安全性。非常感谢你的反馈!谢天谢地,这对我来说不是问题。你可以假设在这个问题上,我们不能摆弄JS。您还有其他安全问题吗?我和OP之间发送信息的方式等?@niv在这种情况下,它与任何其他客户端身份验证一样安全。这意味着用户可以窃听正在发生的一切,这可能是一个问题,也可能不是一个问题。由于用户只是自己登录,因此不必担心敏感数据被嗅探。