我正在创建一个浏览器扩展程序,为某些网站添加功能,我将它与我自己的网络应用程序/ 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_id
和app secret
我看不到任何地方将这些放入此过程中。而且因为它是一个扩展,所以它都是公开的,所以无论如何我都没有看到这一点。
2)我没有看到用户应该如何获得client_id。我的想法是,当用户登录时会触发扩展以在后台发送ajax请求,这将获得client_id,然后我可以将其保存在存储中。如果它丢失了,用户可以再次登录并重新发送。
但是发送一个客户端ID似乎并不安全,而且非常容易暴力破解。也许你不能像某个特定的人那样登录,但是如果你只有一个数字可以猜测,那么你可以像许多人一样登录。
如果我确实让它更安全,那么不能取代令牌的功能,或者我不能直接获得令牌吗?