
プライベート ポータル (お気に入りの Web サイトにすべて自動的にログインできるプライベート Web サイト) を作成しています。すべての Web サイトは iframe に読み込まれます。
ubuntuone に自動ログインする方法を探しています。自動入力フォームを投稿しようとしましたが、ubuntuone は認証ごとに一意のキーを使用します。同じドメインではないため、iframe の外部から jQuery を使用してフォームを送信することはできません。
たぶんPHPでしょうか? この郵便受けUbuntu One Auth と PHP について話しましたが、PHP が API とどのようにやり取りできるかわかりません。例をいくつか教えていただけますか?
アイデアとご協力に感謝します。
答え1
これを行う簡単な方法は、ブラウザでUbuntu Oneにサインインし、出典:iframe 内。少なくともしばらくはサインインしたままになります (セキュリティのため、時々サインアウトされます)。
難しい方法、あなたが確実にいつもサインインしたら、URLを取得するhttps://one.ubuntu.com/api/1.0/from_oauth/?next=/有効なUbuntu One OAuthトークンで署名します。トークンはPythonライブラリを使用して取得できます。https://launchpad.net/ubuntuone-couchまたはUbuntuのキーリングから手動で取得します。OAuthトークンでURLに署名したら、OAuth署名をURLにシリアル化します(次のようなURLになります)。
そして、それを Web ブラウザーで開きます。その URL により、ブラウザーで Ubuntu One にアクセスし、ユーザーとしてサインインします。
JavaScriptで署名を行う次のページが役に立つかもしれません。このページを編集して、あなたのトークンの詳細をブラウザで開いてブックマークするか、iframeでfile:// URLでリンクすれば動作するはずです。また、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>