2010-09-19 16 views
24

me pregunto cómo las aplicaciones de escritorio sin nombres de dominio usan oauth? o no se supone que debe ser usado de esta manera? si es así, ¿qué uso? decir para tumblr tienen un authentication api así que tendré que poner el nombre de usuario y la contraseña en la url/cadena de consulta?¿OAuth para aplicaciones de escritorio?

estoy pensando en usar WPF/Adobe AIR. ¿Cómo funciona algo como tweetdeck?

+1

La aplicación de escritorio no necesita saber acerca de OAuth, etc. Solo necesita sus tokens (que están en las cookies que se envían al cliente una vez que se han conectado). Simplemente vaya a la página de inicio de sesión y espere a que se registren; una vez que haya iniciado sesión (o si el buscador la reenvió automáticamente), debe hacer una copia de las cookies que devolvió el servicio. - Luego, para futuras solicitudes, simplemente devuelve esas cookies. – BrainSlugs83

Respuesta

2

Parece que puede ser posible, consulte googles documentos sobre el tema:

https://developers.google.com/accounts/docs/OAuth2

+3

¿Quizás actualice la respuesta para la nueva versión de OAuth? https://developers.google.com/accounts/docs/OAuth2InstalledApp – 11684

+0

Ninguna de ellas es una solución particularmente buena, ¿verdad? ... – fatuhoku

1

Debe comenzar leyendo sobre cómo empezar con OAuth. Eventualmente, incluso una aplicación de escritorio abrirá una ventana del navegador para autenticar al usuario. TweetDeck y otros clientes de Twitter hacen esto, como probablemente hayas notado.

Tumblr, en su ejemplo, no utiliza OAuth sino una autenticación básica que se realiza mediante simples solicitudes web HTTP.

+0

, pero si un escritorio abre una ventana del navegador para autenticarlo, realmente no estará en un dominio que se requiere para crear una aplicación con el derecho Oauth.Voy a leer el enlace tho –

+0

En realidad, será un dominio que puede confirmar el token de OAuth. Para darle un ejemplo de un servicio real de OAuth (que no sea Twitter), eche un vistazo a Vimeo: http://vimeo.com/api/docs/oauth –

+0

hmm, lo noto, pero ¿cómo viene mi dominio? en juego? p.ej. mi aplicación llamará a mi dominio para autenticar la solicitud o algo así? Lo siento, estoy un poco confundido –

1

Twitter no quiere que los usuarios ingresen sus credenciales en su aplicación. Entonces, en algún momento, la aplicación de escritorio deberá abrir una ventana del navegador a través de la cual Twitter pueda autenticar a sus usuarios y devolver un token de acceso que represente al usuario. Desde ese punto, la aplicación de escritorio puede usar el token de acceso para representar al usuario en todas las llamadas subsiguientes a la API a Twitter.

+0

Ok Entiendo el punto de abrir un navegador, pero si la llamada se realizó desde una aplicación de escritorio sin nombre de dominio, ¿qué ingreso para el nombre de dominio cuando me registro? incluso si tengo un nombre de dominio, ¿cuál es la relación entre la aplicación de escritorio y el nombre de dominio? ¿Debe la aplicación hacer una solicitud a ese nombre de dominio o algo así? –

+0

su aplicación emitirá una llamada a Twitter; es el auth mechansim de Twitter el que aceptará las credenciales del usuario y devolverá un token. Dependiendo de la implementación de Twitter, * puede * necesitar proporcionar una URL de devolución de llamada que Twitter puede usar para devolver el control a su aplicación una vez que el usuario haya completado el flujo de autenticación. ¿Eso ayuda? – Addys

+1

Para una aplicación de escritorio, ¿qué es esta URL de devolución de llamada? –

7

Me ha extrañado la misma pregunta sobre la falta de URL de dominio o aplicación, pero resulta que la redirección no es la única forma de completar el proceso de autenticación de OAuth.

Es decir, cuando las solicitudes de aplicaciones acceden a él, proporciona la URL de devolución de llamada: el usuario será redirigido a cuando finalice el proceso. Así es como Webapp sabe que todo está hecho.

Pero no puede redireccionar a la aplicación en la máquina del usuario. Por lo tanto, hay otra manera: en el servidor de autenticación exitosa presenta un código especial para el usuario. Entonces el usuario copia este código y lo proporciona a la aplicación.

Puede ver las dos formas descritas en specification draft.
También, here's an example de este flujo de autenticación con twitter.

+1

+1 para una respuesta real en lugar de simplemente pegar un enlace. [Otro ejemplo, con Imgur] (https://api.imgur.com/oauth2#response_type) –

0

En un entorno de escritorio que tiene otra forma de obtener el token, el propio navegador URL abierta.

el servidor OAuth2 redirigirá el navegador de los usuarios a la URL de redireccionamiento con el token como parámetro de consulta, por lo que si controla el navegador utilizado, puede leer el token directamente desde la url a la que se redirigió al usuario.

Las bibliotecas gráficas como GKT + tienen opciones integradas para crear mini navegadores que el usuario puede usar para autenticarse, y devuelve automáticamente el token a la aplicación, pero existen otras opciones posibles, como leer la URL de Firefox por ejemplo.

Cuestiones relacionadas