Pergunta

Eu estou trabalhando em um projeto web que não é tão diferente de princípio para power.com , onde Eu estou tentando unificar vários sites de redes sociais diferentes em um único site, permitindo que os usuários registrar uma vez com o sistema, e em seguida, adicionar como muitas das suas contas de redes sociais individuais (Facebook, MySpace, Orkut, etc) como o sistema é construído para punho, o que lhes permite navegar suas respectivas informações de perfil em um único lugar.

Basta colocar, eu não consigo encontrar uma maneira de autenticar usuários arbitrárias em suas contas de redes sociais.

Eu tenho debruçado sobre as especificações do OpenSocial, bem como a OpenSocial PHP projeto do cliente , mas parece-me estar faltando alguma coisa, como tudo é que parece ser circular dependente.

Meu primeiro problema é que, para fins de teste, eu tenho uma chave MySpace eo segredo do consumidor, mas sempre que eu tentar executar uma autenticação de 3-legged com o MySpace, não há nenhuma opção para iniciar sessão como alguém . Além disso, ele executa um redirecionamento externo, que é um pouco indesejável (como um usuário deste eventual rede social "portal", eu prefiro não ter que passar por esse processo de redirecionamento cada vez que adicionar uma nova conta).

Como eu programaticamente autenticar um usuário arbitrário e permitir-lhes acesso às suas informações de conta (de preferência sem o redirecionamento externo)?

Em segundo lugar, a autenticação 2-legged requer um userId (geralmente um número inteiro arbitrário) que identifica o usuário arbitrária para recuperar informações para. No entanto, quando eu entrar no meu MySpace OpenSocial ID, juntamente com a chave do consumidor dado e segredo do consumidor, eu sou dado um erro negado 401 acesso. Além disso, a fim de utilizar este ID no futuro, parece que eu precisaria para autenticar o usuário em primeiro lugar ... mas que a autenticação parece exigir a identificação.

Estou bastante convencido de que eu estou faltando alguma coisa trivial, mas para a vida de mim não consigo descobrir o que é. Ajuda é muito apreciada!

Foi útil?

Solução

Tecnicamente isso não é a minha resposta, mas os desenvolvedores da OpenSocial deram-me as seguintes informações sobre a minha pergunta (grifo meu):

OAuth 3-legged é construído em torno do redirecionar de volta para o site que você está autenticação com, e não há é maneira de evitá-lo. Não é o mais experiência conveniente, mas permite aos usuários compartilhar seus dados com o seu website, mantendo suas senhas privado. Qualquer projecto que requeira usuários a digitar sua senha MySpace em um formulário em seu site é considerado um anti-padrão e deve ser evitado. Você poderia potencialmente tentar o redirecionamento em uma janela pop-up a fim de tornar a experiência um pouco menos chocante para o usuário (atualmente o cliente PHP não faz isso que fácil, mas se você seguiu-se a opensocial-client-libraries@googlegroups.com alguém poderia ajudá-lo a trabalhar através de esse processo).

No que diz respeito ao não ser capaz de alterar o usuário, o que eu acredito MySpace está fazendo no seu caso é verificação de um cookie MySpace e pré-preencher a sua conta informações. Se você fosse um usuário visitar o site e não conectado ao MySpace, você deve obter um completo nome de utilizador / caixa de login combinação. Lá deve ser também um botão ou link um lugar para dizer "eu não sou este usuário" e faça login com outras credenciais.

Quanto 2-legged, você precisa tem o aplicativo associado a chave do consumidor / secret instalado no o perfil de qualquer usuário cujos dados deseja acessar. 2 patas é principalmente destinado a desenvolvedores que estão atualmente em execução um gadget social numa recipiente e desejo de acesso sociais dados para seus usuários de aplicativos fora da banda com um gadget render. Neste caso, o servidor de aplicativos faria já tem o usuário OpenSocial ID (A partir de um makeRequest assinado) ea usuário já teria o aplicativo instalado no seu perfil MySpace).

A maior parte desta está coberta em http://wiki.opensocial.org/index.php?title=OAuth_Use_Casesif você quiser mais informações.

Essencialmente, isso faz com que qualquer uso de autenticação 2-legged em um aplicativo externo impossível; 2-legged foi desenhado explicitamente para não ser usado neste tipo de situação. Além disso, parece que power.com está realmente empregando o anti-padrão de ter usuários suprir suas reais do Orkut / MySpace / etc credenciais, para que explica que pouco.

limpar meus cookies trabalhou para me autenticar através do MySpace. No entanto, eu seguiu-se com uma outra pergunta sobre como a autenticação Orkut iria funcionar, uma vez que não parecem apoiar auth 3 patas. Aqui foi a resposta que recebi:

Orkut está interessado em apoiar este , então você vai ser capaz de permitir que os usuários para compartilhar suas informações com o seu aplicação "corretamente" no futuro.

O aplicativo de duas pernas correspondente seria precisa de transmitir as atuais do espectador ID volta OpenSocial para o servidor, provavelmente junto com uma autorização token de você gera-se para poder você pode ligar uma sessão do usuário no orkut com uma sessão em seu próprio servidor. Honestamente, é provavelmente não utilizável o suficiente para suportar um login standalone sistema.

Essencialmente, não, Orkut realmente não pode ser viciado em um aplicativo externo (pelo menos, não ainda) sem recorrer ao anti-padrão.

Se alguém tiver qualquer informação adicional sobre este assunto, sinta-se livre para compartilhar!

Outras dicas

O padrão também é mencionado aqui http://sites.google.com/site / oauthgoog / 2leggedoauth / 2opensocialrestapi

Essencialmente um monte de mashups iria querer esse recurso:

A 3ª local da festa, que não tem uma dispositivo quer obter os usuários finais permissão para acessar seus dados no rede social, por exemplo, para baixar sua lista de amigos, ou para obter permissão para postar em sua atividade fluxo

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top