我正在构建一个使用
的chrome扩展程序chrome.identity.getAuthToken({
interactive: true
}, function(token) {
if (chrome.runtime.lastError) {
alert(chrome.runtime.lastError.message);
return;
}
var x = new XMLHttpRequest();
x.open('GET', 'https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=' + token);
x.onload = function() {
alert(x.response);
};
x.send();
});
用于google登录验证的background.js上的。
当调用此函数时,会出现一个显示已登录谷歌帐户(如果有)的窗口,但我的问题是它只显示了一个帐户,但我在浏览器中登录了5个帐户。
我在这里错过了什么吗?
我还需要知道如何编写注销功能?
答案 0 :(得分:1)
class TableViewController: UITableViewController ,UITextFieldDelegate,UIPickerViewDelegate,UIPickerViewDataSource{
@available(iOS 2.0, *)
func numberOfComponents(in pickerView: UIPickerView) -> Int {
return 1
}
@IBOutlet var dateTextfield:UITextField!
@IBOutlet var dateLabel:UILabel!
var pickerDaysYear = [["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"],["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]];
override func viewDidLoad() {
super.viewDidLoad()
self.pickerview.delegate = self
}
func numberOfComponentsInPickerView(pickerView: UIPickerView) -> Int {
return 2
}
numberOfRowsInComponent component: Int) -> Int {
return self.pickerDaysYear[component].count
}
func pickerView(_ pickerView: UIPickerView, titleForRow row: Int, forComponent component: Int) -> String? {
if(component == 0)
{
return self.pickerDaysYear[component][row]
}
else
{
return self.pickerDaysYear[component][row]
}
// return pickerDaysYear[component][row]
}
func pickerView(_ pickerView: UIPickerView, didSelectRow row: Int, inComponent component: Int) {
let days = pickerDaysYear[0][pickerView.selectedRow(inComponent: 0)]
let month = pickerDaysYear[1][pickerView.selectedRow(inComponent: 1)]
dateTextfield.text = days + " " + month
}
override func touchesEnded(_ touches: Set<UITouch>, with event: UIEvent?) {
view.endEditing(false)
}
将使用chrome.identity
中“已登录”的帐户。如果未登录Chrome,它会弹出一个标签,允许您“登录”Chrome,这意味着将当前个人资料与Google帐户相关联。
如果您想要显示所有简单登录的帐户,您需要手动创建一个弹出窗口(使用例如chrome://settings
或chrome.tabs.create
并让重定向网址返回到您的服务器,然后与您的扩展程序进行通信(例如,使用window.open
和sendMessage
),或者如果您拥有onMessageExternal
权限,则可以使用tabs
作为重定向网址进行重定向,这将成为oauth授权显示在urn:ietf:wg:oauth:2.0:oob:auto
,您可以使用window.title
权限阅读。