我正在使用http://oauth.io连接到AngularJS应用程序中的Facebook,Twitter,....这样我就不必担心重定向等,并在获取访问令牌时加载数据。一切正常,但弹出窗口在我触发弹出窗口时被阻止。
奇怪的是,如果你去OAuth.io的控制面板并尝试连接,它不会触发弹出窗口阻止程序,它会按预期工作。当我自己实现它时,它会触发Chrome中的弹出警告。
这是我的代码:
指令:
<div class="service" ng-click="addAccountToBrand(brand, service); brand.accountGridVisible = false">
<h1>{{ service | serviceAbbreviation }}</h1>
<p>{{ service | serviceName }}</p>
</div>
控制器:
OAuth.getData(service).then(function (oauthResult) {
var partial = OAuthConfig[service].hasMultipleAccounts ? 'oauth-connect-multiple' : 'oauth-connect-single';
partial = service === 'GoogleAnalytics' ? 'oauth-connect-google-analytics' : partial;
Popover.show(partial, {
brand: brand,
service: service,
serviceData: oauthResult.serviceData,
result: oauthResult.result,
token: oauthResult.token
});
});
服务
OAuth.popup(serviceSnakeCased, {
state: "YOUR_SERVER_SIDE_STATE", // TODO: generate a random state
authorize: {
approval_prompt: 'force'
}
}, function (error, result) {
console.log('OAuth connection:', result);
});
非常感谢任何帮助!