
Estou criando um portal privado (um site privado onde faço login automaticamente em todos os meus sites favoritos). Cada site é carregado em um iframe.
Estou procurando uma maneira de fazer login automático no Ubuntu. Tentei postar um formulário preenchido automaticamente, mas o Ubuntu usa uma chave exclusiva para cada autenticação. Não posso usar o jquery para enviar o formulário de fora do iframe porque não é o mesmo domínio.
Talvez em PHP? Esta postagemfalo sobre Ubuntu one auth e PHP, mas não sei como o PHP poderia interagir com a API. Você pode ter algum exemplo?
Obrigado pelas ideias e pela sua ajuda.
Responder1
A maneira fácil de fazer isso é simplesmente entrar no Ubuntu One no seu navegador e colocarhttps://one.ubuntu.comno iframe; você permanecerá conectado por pelo menos um tempo (e será desconectado ocasionalmente por segurança).
Da maneira mais difícil, se você quiser ter certeza de que estásempreconectado, é pegar o URLhttps://one.ubuntu.com/api/1.0/from_oauth/?next=/e assine-o com um token Ubuntu One OAuth válido. Você pode recuperar um token usando a biblioteca Python emhttps://launchpad.net/ubuntuone-couchou manualmente a partir do seu chaveiro do Ubuntu. Depois de assinar o URL com esse token OAuth, serialize a assinatura OAuth no URL (para obter um URL parecido com
e abra-o em seu navegador. Esse URL o levará ao Ubuntu One, no navegador, conectado como você.
Você pode achar útil a página a seguir, que faz a assinatura em JavaScript: edite esta página para incluirseudetalhes do token, e então você pode simplesmente abrir esta página no navegador e marcá-la, ou vincular a ela em um iframe com um URL file://, e deve funcionar. Também requer oauth.js e sha1.js dehttp://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>