Melden Sie sich über iFrame bei Ubuntu One an

Melden Sie sich über iFrame bei Ubuntu One an

Ich erstelle ein privates Portal (eine private Website, auf der ich mich automatisch bei allen meinen Lieblingswebsites anmelde). Jede Website wird in einem Iframe geladen.

Ich suche nach einer Möglichkeit, mich automatisch bei Ubuntu anzumelden. Ich habe versucht, ein automatisch ausgefülltes Formular zu posten, aber Ubuntu verwendet für jede Authentifizierung einen eindeutigen Schlüssel. Ich kann jQuery nicht verwenden, um das Formular von außerhalb des Iframes abzuschicken, da es nicht dieselbe Domäne ist.

Vielleicht in PHP? Dieser BeitragSprechen Sie über Ubuntu One Auth und PHP, aber ich weiß nicht, wie PHP mit der API interagieren könnte. Können Sie ein Beispiel haben?

Danke für die Ideen und eure Hilfe.

Antwort1

Der einfachste Weg, dies zu tun, besteht darin, sich in Ihrem Browser bei Ubuntu One anzumelden und dannhttps://one.ubuntu.comim Iframe; Sie bleiben zumindest für eine Weile angemeldet (und werden aus Sicherheitsgründen gelegentlich abgemeldet).

Der harte Weg, wenn Sie sicher sein wollen, dass Siestetsangemeldet sind, ist die URL zu nehmenhttps://one.ubuntu.com/api/1.0/from_oauth/?next=/und signieren Sie es mit einem gültigen Ubuntu One OAuth-Token. Sie können ein Token mithilfe der Python-Bibliothek in abrufenhttps://launchpad.net/ubuntuone-couchoder manuell von Ihrem Ubuntu-Schlüsselbund. Sobald Sie die URL mit diesem OAuth-Token signiert haben, serialisieren Sie die OAuth-Signatur in die URL (so erhalten Sie eine URL, die aussieht wie

und öffnen Sie es dann in Ihrem Webbrowser. Über diese URL gelangen Sie in den Browser zu Ubuntu One, angemeldet als Sie selbst.

Möglicherweise finden Sie die folgende Seite hilfreich, die die Anmeldung in JavaScript durchführt: Bearbeiten Sie diese Seite, um sie einzuschließendeinToken-Details, und dann können Sie diese Seite einfach im Browser öffnen und als Lesezeichen speichern oder in einem Iframe mit einer file://-URL darauf verlinken, und es sollte funktionieren. Es erfordert auch oauth.js und sha1.js vonhttp://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>

verwandte Informationen