(Django) autenticação Sharing em dois locais que estão em diferentes domínios




Eu tenho dois sites dizem foo.com e bar.com e são ambos baseados Django. Registro primária ocorre em foo.com (eu gostaria a principal db usuário seja aqui) e eu gostaria que três coisas a acontecer:


1) O usuário que efetua login foo.com é automaticamente acessar a bar.com sem efetuar login novamente


2) O utilizador que regista no bar.com directamente é autenticado contra db utilizador foo.com.


3) Não há necessidade de um usuário se registrar no bar.com diretamente.


Como posso conseguir isso? Se ele simplifica muito as coisas que eu posso fazer bar.com um subdomínio do foo.com (eg. Bar.foo.com), mas eles devem ser locais separados.
Seu terceiro exigência poderia ser facilmente resolvido através da partilha do mesmo banco de dados entre os dois locais (portanto, ter mesa os mesmos usuários. 


O 1º exigência é complicado por causa de problemas entre domínios (o cookie de sessão não será compartilhado).


O que você está procurando realmente é um [Single Sign On (SSO)](http://en.wikipedia.org/wiki/Single_sign-on) . Você pode considerar [django-OpenID](http://simonwillison.net/2007/Apr/24/openidconsumer/) .
<p>o que os sites devem fazer é usar o twitters oauth para fazer login, ele o redirecionará para o twitter, onde será perguntado se você deseja compartilhar detalhes (nunca sua senha). sites externos em breve não poderão mais conectar usuários ao twitter usando um nome de usuário e senha, de modo que comportamentos como esse em breve seguirão o caminho do dodo.</p><p>para vê-lo em ação, criei um site para a api de aplicativos de pilha que usa o twitter oauth chamado <a href="http://stackoftwits.com">pilha de twits</a> .</p> <p>richard, acho que seu dilema é semelhante ao que tive com a empresa anterior que cofundei ( <a href="http://www.bloggersbase.com/">bloggersbase</a> ).</p><p>tínhamos dois públicos principais - bloggers e leitores, cada um com diferentes motivos para se registrar. mas como não tínhamos certeza de qual público o usuário pertencia, escolhemos a multidão mais provável e mostramos que havia outras opções usando abas grandes. como você pode ver abaixo, cada um tem um design completamente diferente, coisas com maior probabilidade de interessar a esse público e até o texto da chamada à ação (para registrar) é diferente.</p><p><img src="https://i.stack.imgur.com/fxg0y.jpg" alt="alt text"></p><hr><p><img src="https://i.stack.imgur.com/d8oy5.jpg" alt="alt text"></p><p>talvez usar esse método, ou seja, mostrar seu público principal, mas também expor as outras opções funcionasse. se você precisar descobrir quem é seu público principal, considere:</p><ul> <li><strong> que palavras levarão os usuários da pesquisa para esta página? </strong> no nosso caso, esperávamos que as pessoas pesquisassem blogs ou promoção de blogs, mas não pesquise coisas relacionadas a "lendo blogs".</li> <li><strong> qual multidão beneficiará mais o seu site ao se registrar? </strong> claro, você tem vendedores e compradores e cada um precisa do outro, assim como criamos blogueiros e leitores ( os leitores eram moderadores ativos etc.), mas o valor de um blogueiro era muito maior como produtor de conteúdo que mesmo usuários não registrados podiam acessar.</li> </ul><p>espero que este exemplo tenha ajudado ...</p> olá lojistas,

vou explicar com alguns detalhes sobre essa questão… acontece que a maneira correta de acessar o seu site é desta forma “[dominiodaloja.com.br](http://dominiodaloja.com.br/)” , assim automaticamente o https é colocado e a sua loja fica segura. e há também outras formas de acessar o site:

[dominiodaloja.com.br](http://dominiodaloja.com.br/)
[www.d…](http://www.dominiodaloja.com.br/) lógico,isso é extremamente fácil,porem a maioria tem o perfil privado então so se vc usar todos os dias aqui que vc vai identificando <p>eu não acho que existe uma maneira de fazer isso. no entanto, se você seguir as instruções de instalação, eles solicitarão que você configure subdomínios para serviços específicos. por exemplo, mail.example.com permitirá que os usuários do seu domínio efetuem login diretamente no correio deles. você faz isso configurando um <a href="http://www.google.com/support/a/bin/answer.py?hl=en&amp;answer=47283">registro cname</a> que aponta para <code>ghs.google.com</code>. as instruções completas estão disponíveis se você for para a página de administração, o painel, o e-mail e a url de alteração.</p><p>isso simplesmente acontece quando os usuários digitam um domínio como <code>mail.example.com</code> e os levam para <code>http://mail.google.com/a/example.com</code>.</p> se a session do node já te atender nao tem necessidade de adicionar outro recurso. se tua necessidade é conectar com contas do google, facebook, etc ai sim voce usa passaport. <p>você pode usar <a href="http://www.openldap.org/doc/admin24/quickstart.html">openldap</a> para autenticação e <a href="http://nfs.sourceforge.net/nfs-howto/">nfs</a> em combinação com <a href="http://tldp.org/howto/automount.html">automount</a> para montar seu diretório home na área de trabalho.</p><p>outra possibilidade é usar o projeto <a href="https://help.ubuntu.com/community/ubuntultsp">ltsp server</a> para executar todo o aplicativo de um servidor e executar apenas thin clients. qual solução é a melhor, depende dos seus requisitos particulares.</p> <p>você deve analisar a solicitação de assinatura. um ótimo exemplo é <a href="http://docs.amazonwebservices.com/amazons3/latest/dev/restauthentication.html">amazon s3 rest)</a> .</p><p>a visão geral é bastante direta. o usuário possui duas informações importantes para usar sua api, um id de usuário público e uma chave de api privada. eles enviam o id público com a solicitação e usam a chave privada para assinar a solicitação. o servidor de recebimento consulta a chave do usuário e decide se a solicitação assinada é válida. o fluxo é algo como isto:</p><ol> <li>o usuário ingressa no seu serviço e obtém um id do usuário (por exemplo, 123) e uma chave de api.</li> <li>o usuário deseja fazer uma solicitação ao seu serviço de api para atualizar o endereço de e-mail. portanto, é necessário enviar uma solicitação para sua api, talvez para <code>/user/update?email=new@example.com</code>.</li> <li>para possibilitar a verificação da solicitação, o usuário adiciona o id do usuário e uma assinatura <strong> </strong> à chamada, para que a chamada se torne <code>/user/update?email=new@example.com&amp;userid=123&amp;sig=some\_generated\_string</code></li> <li>o servidor recebe a chamada, vê que é de userid = 123 e procura a chave da api para esse usuário. em seguida, replica as etapas para criar a assinatura a partir dos dados e, se a assinatura corresponder, a solicitação será válida.</li> </ol><p>essa metodologia garante que a chave da api <strong> nunca seja enviada como parte da comunicação </strong>.</p><p>dê uma olhada na função <a href="http://php.net/hash\_hmac">hash\_hmac ()</a> do php, que é popular para enviar solicitações assinadas. geralmente, você faz com que o usuário faça algo como colocar todos os parâmetros em uma matriz, classificar em ordem alfabética, concatenar em uma string e depois <code>hash\_hmac</code> essa string para obter o sig. neste exemplo, você pode fazer:</p><pre><code>$sig = hash\_hmac("sha256",$params['email'].$params['userid'],$api\_key) </code></pre><p>adicione então <code>$sig</code> no url rest como mencionado acima.</p> Olá
  

  
O Facebook notifica como esta identificação deve ser feita, siga as instruções dele: senha, fotos, amigos, etc.
  

  
Boa sorte boa noite,

sim pode fazer, a plataforma não muda nada, o que vai mudar é o seu domínio.