2010-09-07 12 views
5

Desarrollando una aplicación web que he registrado en Twitter. En esta aplicación, podría tener 10 identidades de Twitter diferentes a las que quiero permitir o denegar el acceso para la aplicación.Con la autorización de Twitter oAuth, ¿cómo se especifica qué nombre de usuario de twitter?

Por ejemplo:

https://api.twitter.com/oauth/authorize?oauth_token=XXXXXXXXXXXXXXXXXXXXXXXX&oauth_callback=http:://localhost:24649/TwitterIdentity/GetTwitterAuthorizationCallback/

Siempre solo defecto a lo que mi cuenta de twitter está conectado como y tengo que especificar Salir, a continuación, iniciar sesión con la nueva cuenta. Es casi como si necesitara un parámetro de cadena de consulta adicional, como

https://api.twitter.com/oauth/authorize?oauth_token=XXXXXXXXXXXXXXXXXXXXXXXX&oauth_callback=http:://localhost:24649/TwitterIdentity/GetTwitterAuthorizationCallback/& ForUsername = billgates

Respuesta

1

Tenga en cuenta que en el ámbito general de la autorización, el agente autorizado no necesariamente conoce la identidad del usuario en cuyo nombre actúa En otras palabras, podría haber una implementación en la que tu aplicación pueda ser autorizada para leer la secuencia de actualizaciones de Twitter, sin saber a qué identidad pertenece esa transmisión. Agregar el parámetro que solicita sería la divulgación de información en este caso, ya que su aplicación necesitará una información que el sistema está diseñado para no proporcionar.

O para ponerlo en un ejemplo de la vida real - imagine un servicio de aparcacoches, donde en vez de darle un ticket de estacionamiento y llevar las llaves del auto, el valet le pediría su SSN solo para estacionar el auto, solo porque el aparcacoches estaciona los carros para otras personas también.

+0

Estaba tratando de averiguar cómo obtener el inicio de sesión de la sesión al acceder a la página autorizar. Parece que técnicamente no es posible. Gracias por la explicación. – Shane

+0

Una vez que se autoriza su aplicación, es muy probable que pueda obtener la identidad de Twitter API. Por lo tanto, podría mantener una asociación de tokens de autorización e identidades. Simplemente no puede solicitar autorización para una identidad específica. –

+0

Eso es lo que terminé haciendo. Tengo una tabla en la que almaceno el token de solicitud durante la autorización, luego, al realizar la devolución de llamada, la comparé con ese token de solicitud. Entonces conoceré al usuario. Gracias de nuevo. – Shane

3

En realidad, se puede pasar de un parámetro adicional con la URL de devolución de llamada, así:

https://api.twitter.com/oauth/authorize?oauth_token=XXX&oauth_callback=http:://localhost:24649/TwitterIdentity/GetTwitterAuthorizationCallback?ForUsername=billgates 

y el parámetro será enviado de nuevo a usted cuando Twitter llama a la URL de retorno, así:

http:://localhost:24649/TwitterIdentity/GetTwitterAuthorizationCallback?ForUsername=billgates&oauth_token=XXX&access_token=YYY 

puede leer más sobre esto en la documentación - http://dev.twitter.com/pages/auth:

Utilice siempre una oauth_callback explícita - Se recomienda especificar un OAuth de devolución de llamada por defecto en su registro de cliente , sino explícitamente declarar su oauth_callback en cada petición de señal de petición de recuperación su aplicación hace. Al establecer dinámicamente su oauth_callback, puede pasar información adicional del estado de nuevo a su aplicación y controlar la experiencia mejor.

Cuestiones relacionadas