使用Oauth从浏览器扩展进行身份验证

时间:2017-10-06 09:36:47

标签: ruby-on-rails google-chrome-extension oauth doorkeeper

我正在创建一个浏览器扩展程序,为某些网站添加功能,我将它与我自己的网络应用程序/ api后端配对。我想要{ap}的POST身份验证用户。我正在使用带有Rails应用程序的Doorkeeper gem来使我的应用程序成为Oauth2提供程序。

主题(https://developer.chrome.com/apps/app_identity)上的Google页面说客户需要在应用中注册(我已设置注册页面),然后使用

chrome.identity.launchWebAuthFlow(
  {'url': '<url-to-do-auth>', 'interactive': true},
  function(redirect_url) { /* Extract token from redirect_url */ });

交出oauth

https://www.website-of-provider-with-user-photos.com/dialog/oauth?client_id=123456789012345& redirect_uri=https://abcdefghijklmnopqrstuvwxyzabcdef.chromiumapp.org/provider_cb&response_type=token&scope=user_photos

url

的一个例子

所以,我的问题是:

1)门卫为您提供了app_idapp secret我看不到任何地方将这些放入此过程中。而且因为它是一个扩展,所以它都是公开的,所以无论如何我都没有看到这一点。

2)我没有看到用户应该如何获得client_id。我的想法是,当用户登录时会触发扩展以在后台发送ajax请求,这将获得client_id,然后我可以将其保存在存储中。如果它丢失了,用户可以再次登录并重新发送。

但是发送一个客户端ID似乎并不安全,而且非常容易暴力破解。也许你不能像某个特定的人那样登录,但是如果你只有一个数字可以猜测,那么你可以像许多人一样登录。

如果我确实让它更安全,那么不能取代令牌的功能,或者我不能直接获得令牌吗?

0 个答案:

没有答案