java facebook playframework oauth-2.0

java - Play Framework anexando#_=_ para redirigir después de la autenticación de Facebook a través de OAuth2?



playframework oauth-2.0 (2)

Esto fue agregado después de una actualización de seguridad.

Desde el blog del desarrollador de Facebook :

Cambio en el comportamiento de redireccionamiento de sesión

Esta semana, comenzamos a agregar un fragmento #_=_ al redirect_uri cuando este campo se deja en blanco. Por favor, asegúrese de que su aplicación puede manejar este comportamiento.

Estoy haciendo una redirección simple después de llamar a OAuth2 :: retrieveAccessToken () con Play Framework. Tengo caracteres divertidos adjuntos a la URL que nunca puse allí, por lo que el resultado final es el siguiente:

http://localhost:9000/#_=_

¿De dónde diablos viene el # _ = _? Aquí está mi definición de ruta del archivo de rutas:

GET / Application.index

Aquí está el fragmento de código del controlador que trata con la autenticación de Facebook:

public static void facebookConnect() { OAuth2 facebook = new OAuth2( "https://graph.facebook.com/oauth/authorize", "https://graph.facebook.com/oauth/access_token", "2#############6", "c##############################2" ); if(OAuth2.isCodeResponse()) { OAuth2.Response oauthResponse = facebook.retrieveAccessToken(facebookAuthUrl()); if(oauthResponse.error == null) { //... Somewhere here, something is causing #_=_ to be appended to the URL? Application.index(); } } facebook.retrieveVerificationCode(facebookAuthUrl()); }

EDITAR:

De acuerdo con esta página , Facebook cambió su API recientemente para incluir el = si request_uri está vacío, el problema es ... ¿mi request_uri se ha establecido explícitamente?


Tal vez estos personajes provienen de la devolución de llamada de facebook. Estaba recibiendo una devolución de llamada de FB como

localhost:9000?someparams#code=verylongcodefromfacebook

Podría deshacerme del # solo desinfectando los parámetros antes de solicitar el token de acceso.