我正在使用Chrome扩展程序,后端服务器需要脱机访问权限和用户帐户的刷新令牌。我不熟悉Chrome扩展程序,也不确定在这种情况下我应该如何进行授权。
使用chrome.identity
的好处是我可以设置interactive=false
并尝试授权,而不会在插件加载时打扰用户。但是,getAuthToken()
方法没有为后端提供获取刷新令牌的方法。
相反,如果我使用launchWebAuthFlow()
方法并将用户重定向回OAuth页面,即
chrome.identity.launchWebAuthFlow({
url: https://*<my_host>*/auth/google,
interactive: true,
}, function(url) {
var uri = URI(url),
params = uri.search(true);
var token = params.authToken;
done(token);
});
其中https://*<my_host>*/auth/google
是我的服务器OAuth路径,然后由于某种原因,“权限范围”页面未显示。相反,它会显示Google登录页面。 (注意:如果我使用浏览器导航到https://*<my_host>*/auth/google
,则权限页面会正确显示。)
无论如何使用chrome.identity
API执行此操作?如果没有,我是否必须使用弹出窗口执行OAuth?通常这样做的正确方法是什么?