iFrame에서 Ubuntu One에 로그인

iFrame에서 Ubuntu One에 로그인

개인 포털(내가 즐겨찾는 모든 웹사이트에 자동으로 로그인하는 개인 웹사이트)을 만들고 있습니다. 모든 웹사이트는 iframe에 로드됩니다.

우분투온에 자동 로그인하는 방법을 찾고 있습니다. 자동으로 완성되는 양식을 게시하려고 했는데 우분투원에서는 인증마다 고유키를 사용하고 있습니다. 동일한 도메인이 아니기 때문에 jquery를 사용하여 iframe 외부에서 양식을 제출할 수 없습니다.

어쩌면 PHP에서? 이 게시물Ubuntu one 인증 및 PHP에 대해 이야기하지만 PHP가 API와 어떻게 상호 작용할 수 있는지 모르겠습니다. 몇 가지 예를 들어 주시겠어요?

아이디어와 도움에 감사드립니다.

답변1

이를 수행하는 쉬운 방법은 브라우저에서 Ubuntu One에 로그인한 다음 다음을 입력하는 것입니다.https://one.ubuntu.comiframe에서; 최소한 한동안은 로그인 상태를 유지하게 됩니다(그리고 보안을 위해 가끔 로그아웃하기도 합니다).

어려운 방법입니다. 자신이언제나로그인하면 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을 얻게 됩니다.

그런 다음 웹 브라우저에서 엽니다. 해당 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>

관련 정보