net mvc example crear asp twitter oauth twitter-oauth

example - Asp.Net MVC 5 Owin Twitter Auth throwing 401 Exception



mvc authentication example (2)

He configurado la autenticación OAuth utilizando el middleware Owin basado en el proyecto predeterminado que se crea al iniciar un nuevo proyecto web utilizando la autenticación de "Cuentas individuales".

Lo he modificado un poco, pero Facebook y Google funcionan muy bien, sin embargo, cuando hago clic en el botón "twitter" para emitir el desafío, se lanza una excepción de 500 HTTP con el mensaje de error:

El código de estado de respuesta no indica éxito: 401 (no autorizado).

Esto solo viene con Twitter. Aquí está mi configuración de autenticación:

// Just a configuration section that reads from the web.config var configuration = new OwinCookieConfigurationSection("owinCookieConfiguration"); app.UseCookieAuthentication(GetCookieAuthenticationOptions(configuration)); app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie); app.UseTwitterAuthentication( consumerKey: "XXX", consumerSecret: "XXX" ); app.UseFacebookAuthentication( appId: "XXX", appSecret: "XXX" ); app.UseGoogleAuthentication();

Definitivamente es un error de 500, no es un error 401, ya que indica y he confirmado que nunca pasa el desafío original de Twitter. El seguimiento de la pila parece mostrar que Twitter no devuelve un código de éxito de la llamada ObtainRequestToken:

¿Algunas ideas?


Necesita ingresar a la aplicación Twitter Dev y agregar una dirección de sitio web. Sé que parece tonto, pero esto resolverá tu problema.

  1. https://apps.twitter.com/
  2. Ve a la pestaña Configuración
  3. Establezca una URL CallBack en cualquier sitio web. Incluso si no es real.

Esto debería resolver tu problema.


Resolví mi problema de la manera que Patrick describió hace 1 año. Hoy me encontré con el mismo problema de nuevo, pero esta vez descubrí que el problema fue causado por la configuración de fecha / hora en mi computadora. Dado que la fecha / hora en esta computadora generalmente no está sincronizada, tuve que ir a la pestaña "Cambiar fecha y hora" -> "Hora de Internet" y habilitar la sincronización de Internet.