2009-05-19 19 views
8

Este es el trato:
- Flair más o menos demandas de una aplicación de Facebook
-Estoy trabajando en el aprendizaje de la plataforma de Facebookusando OpenID para demostrar la pertenencia Stackoverflow

Por lo tanto, he escrito un poco de mala muerte aplicación de Facebook para insertar tu estilo en una caja en el lado de tu perfil. If you're interested and on Facebook; Tenga en cuenta que se trata de un trabajo en progreso, propenso a los cambios y tiene un montón de asperezas.

Sin embargo, no tengo una manera elegante de decir "este es MI perfil Stackoverflow" de esta pequeña aplicación. Mi solución actual se demuestra mejor this image. Es, francamente, idiota; y no hay nada que prevenga la suplantación.

Al no tener experiencia con OpenID, me pregunto si hay alguna forma (y algún ejemplo de esta manera, por favor) de que un usuario proporcione su identificación de Stackoverflow a un tercero.


Comportamiento cambiado a lo sugerido por la respuesta de Noldorin.
Solicitud de una forma más sana de hacerlo declined on UserVoice.

+0

Creo que esto pertenece a Uservoice? –

+4

No realmente, él está haciendo esto solo y no pide que lo haga por él. no comentarios o una sugerencia por ver – Malfist

+1

¿Está pidiendo "dado un OpenID, determine qué usuario de SO"? No creo que esto sea posible con la arquitectura actual. La usabilidad de su solución actual podría mejorarse permitiendo al usuario copiar y pegar toda la URL del perfil de SO en lugar de tener que cortar solo el número de identificación ... no es que haga una gran diferencia. – ephemient

Respuesta

10

No hay forma de obtener una ID de StackOverflow de OpenID y hacer lo contrario sería posible pero innecesariamente complicado (en comparación con el método sugerido). Copiar y pegar la ID de usuario/URL del perfil no es terriblemente inconveniente, en mi opinión.

Sin embargo, puedo sugerir algún tipo de solución al problema de la suplantación. Esto puede parecer un método un poco tonto, pero es la manera más simple de que pueda pensar para asegurar que solo el usuario en sí pueda mostrar la insignia. Nuevamente, no creo que sea demasiado inconveniente. (El método más tradicional de usar una confirmación por correo electrónico no es posible, dado que los correos electrónicos no son públicos.)

  1. Haga que su aplicación de Facebook genere un código aleatorio (¿alfanumérico?). Algo en el formulario A8IO45QW6T debería hacer.
  2. Mantenga este código en el lado del servidor de su aplicación de Facebook durante un breve período de tiempo (por ejemplo, 5 minutos).
  3. Indique al usuario que edite su información Acerca de mí agregando el código dado a la última línea, luego regrese a Facebook y confirme. La simple inspección de HTML para la página de perfil del usuario especificado verificará la propiedad. El usuario puede eliminar el código de verificación de su Acerca de mí de texto.

Buena idea para crear esta aplicación de Facebook, por cierto. ¡Puedo intentarlo!

+0

Voy a jugar con este enfoque. Una sutileza que Facebook impone a este diseño es que mi código (PHP) no se invoca cuando se muestra un perfil (push mo del), y no se ejecuta javascript embebido hasta que el usuario interactúa con el cuadro (por lo tanto, el cuadro de "haga clic para ver la reputación"). –

+0

@Kevin: Ese "modo push" parece bastante extraño. Estoy seguro de que he visto aplicaciones de Facebook que lo solucionan de alguna manera. ¿No puedes ejecutar código en el evento "onload"? – Noldorin

+0

No. Desde el wiki de desarrollo de Facebook: 'En las casillas de perfil, las secuencias de comandos en línea se difieren hasta que el primer evento "activo" se active por un usuario. Un evento activo se considera en foco, en clic, en pausa, y así sucesivamente. Básicamente, cualquier cosa que requiera un clic del mouse es un evento "activo". Todo lo que coloque en una página de Perfil es bastante restringido, una vez que se mueve a las páginas de Lienzo o Cajas, tiene mucha más flexibilidad. Simplemente no tiene sentido publicar Flair en otro lugar que no sea el perfil, desafortunadamente. –

2

Otra solución que permitiría la verificación instantánea es el uso de hash en la dirección de correo electrónico y verificar si coincide con el Gravatar del usuario. Por supuesto, no todos los usuarios han proporcionado una dirección de correo electrónico, pero siempre puede realizar esta verificación primero y, si falla, puede recurrir a la edición de la sección Acerca de mí (o simplemente requerir que el usuario tenga una dirección de correo electrónico). Esta idea no es mía, así que voy a dejar que null explain:

¿Todavía tiene la fuente disponible? Como obtuve una solución para evitar que otros usuarios estropeen sus resultados. Solo necesita ajustar la dirección de correo electrónico utilizada por el usuario y verificar el enlace de la imagen de Gravatar en la página como outlined on the gravatar site.Si la identificación del usuario y el hash de la imagen coinciden, entonces registre el cambio en la base de datos, de lo contrario ... solo muestre los resultados. Puedo hacer ese cambio, pero la fuente parece perdida ... :(

+0

Además, los correos electrónicos son bastante fáciles de adivinar. Por ejemplo, el correo electrónico de Jon Skeet es probablemente '[email protected]'; que se puede alcanzar con dos clics desde su perfil de usuario. Combine esto con Facebook que no proporciona un mecanismo para obtener * direcciones de correo electrónico en bruto * para los usuarios, y su waaay es fácil para un usuario suplantar a otro que usa este esquema. * Puede enviar correos electrónicos a los usuarios que utilizan estas extrañas claves proxificadas, que son pares de aplicación/usuario y no se pueden transformar en el correo electrónico original. –

+0

Cierto. Supongo que depende de su objetivo: si desea que alguien pueda evitar que otros se hagan pasar por su perfil SO en FaceBook, todo lo que el usuario debe hacer es usar una dirección privada y/o única. Si quiere evitar toda suplantación, tendrá que usar otro sistema. –

+0

Definitivamente estoy buscando evitar la suplantación. Además, un usuario que ha difundido su correo electrónico vinculado a Gravatar a las cuatro esquinas de Internet sería bastante difícil si ahora quisiera comenzar a usar una dirección súper secreta, a menos que me falte algo sobre cómo funciona Stackoverflow con el uso de gravatares. –