Войти в Ubuntu One из iFrame

Войти в Ubuntu One из iFrame

Я создаю частный портал (частный веб-сайт, где я автоматически захожу на все мои любимые веб-сайты). Каждый веб-сайт загружается в iframe.

Я ищу способ автоматического входа в ubuntuone. Я пытался разместить автоматически заполненную форму, но ubuntuone использует уникальный ключ для каждой аутентификации. Я не могу использовать jquery для отправки формы из-за пределов iframe, потому что это не тот же домен.

Может быть на PHP? Эта почтаговорят об Ubuntu one auth и PHP, но я не знаю, как PHP может взаимодействовать с API. Может быть, у вас есть какой-нибудь пример?

Спасибо за идеи и помощь.

решение1

Самый простой способ сделать это — просто войти в Ubuntu One в браузере, а затем ввестиhttps://one.ubuntu.comв iframe; вы останетесь в системе по крайней мере на некоторое время (и время от времени будете выходить из системы в целях безопасности).

Сложный путь, если вы хотите быть уверены, что вывсегдавойдя в систему, необходимо взять URLhttps://one.ubuntu.com/api/1.0/from_oauth/?next=/и подпишите его с помощью действующего токена Ubuntu One OAuth. Вы можете получить токен с помощью библиотеки Python вhttps://launchpad.net/ubuntuone-couchили вручную из вашего брелока Ubuntu. После того, как вы подписали URL с помощью этого токена OAuth, сериализуйте подпись OAuth в URL (так вы получите URL, который выглядит как

и затем откройте его в своем веб-браузере. Этот URL-адрес перенаправит вас в Ubuntu One, в браузере, войдя в систему как вы.

Следующая страница, которая выполняет подпись на JavaScript, может оказаться вам полезной: отредактируйте эту страницу, включив в неетвойдетали токена, и затем вы можете просто открыть эту страницу в браузере и добавить ее в закладки, или сделать ссылку на нее в iframe с URL file://, и это должно работать. Это также требует oauth.js и sha1.js изhttp://oauth.googlecode.com/svn/code/javascript/.

<!doctype html>
<html><head><title>Log in to Ubuntu One without password</title>
<script src="sha1.js"></script><script src="oauth.js"></script>
</head><body>
<script>
var url = "https://one.ubuntu.com/api/1.0/from_oauth/"
var accessor = {
  token: "TTTTTTTT",
  tokenSecret: "SSSSSSSSS",
  consumerKey : "CCCCCCCC",
  consumerSecret: "ssssssssss"
};
var message = {
  action: url,
  method: "GET",
  parameters: {next: "/"}
};
OAuth.completeRequest(message, accessor);
OAuth.SignatureMethod.sign(message, accessor);
url = url + '?' + OAuth.formEncode(message.parameters);
location.href = url;
</script>
</body>
</html>

Связанный контент