0

ich über ein Projekt genommen haben, die SecureSocial 2.1.4 verwendet und läuft Scala 2.2.4Scala 2.2.4 mit Secure soziale und Facebook-Login

ich Aktualisierung sah, und beschlossen, dass, wenn die App ist in so baufällig und wurde nicht so lange aktualisiert, ich würde nur einen Umbau in einer anderen Sprache machen (ich habe fast keine Scala gemacht).

Heute scheint es, als ob ein Update für die Facebook-API Logins unterbrochen hat.

Ich versuche herauszufinden, den schnellsten Weg, Logins zurück zu bekommen, aber kann nicht herausfinden, was ist die beste Version zu aktualisieren, und wie man das gut mit der einfachsten Version von scala arbeiten.

Im Build.scala, zeigt es

"ws.securesocial" %% "securesocial" % "2.1.4", 
"com.typesafe" %% "play-plugins-mailer" % "2.2" exclude("org.scala-stm", "scala-stm_2.10.0"), 

Wenn ich bis 2.10 zu aktualisieren versuchen, ich

[warn] :: ws.securesocial#securesocial_2.10;2.10: not found 
[warn] :: com.typesafe#play-plugins-mailer_2.10;2.2: not found 

In play.plugins bekommen, hat es

1500:com.typesafe.plugin.CommonsMailerPlugin  
9994:securesocial.core.DefaultAuthenticatorStore 
9995:securesocial.core.DefaultIdGenerator 

Ich habe es geschafft, einen Build mit

"ws.securesocial" %% "securesocial" % "M3.0-M1" 
zu erstellen

Wenn ich die app securesocial 2.1.4 laufen und versuchen, die einzige Fehler, den ich bekommen anmelden, sehen ist Benutzer konnte nicht eingeloggt sein. Eine Ausnahme

[error] application - Unable to log user in. An exception was thrown 
securesocial.core.AuthenticationException: null 
    at securesocial.core.OAuth2Provider.doAuth(OAuth2Provider.scala:117) ~[securesocial_2.10-2.1.4.jar:2.1.4] 
    at securesocial.core.IdentityProvider.authenticate(IdentityProvider.scala:75) ~[securesocial_2.10-2.1.4.jar:2.1.4] 
    at securesocial.controllers.ProviderController$$anonfun$handleAuth$1.apply(ProviderController.scala:92) [securesocial_2.10-2.1.4.jar:2.1.4] 
    at securesocial.controllers.ProviderController$$anonfun$handleAuth$1.apply(ProviderController.scala:88) [securesocial_2.10-2.1.4.jar:2.1.4] 
    at play.api.mvc.ActionBuilder$$anonfun$apply$10.apply(Action.scala:221) [play_2.10-2.2.4.jar:2.2.4] 
    at play.api.mvc.ActionBuilder$$anonfun$apply$10.apply(Action.scala:220) [play_2.10-2.2.4.jar:2.2.4] 

Die ultimative Lösung, wenn geworfen würde Ich könnte mein Modell aktualisieren, um mit den neuen Facebook-Änderungen an der API zu arbeiten

-------------- UPDATE ---------------

Wenn Sie mehr Nachforschungen anstellen, scheint das Problem darin zu liegen, dass Facebook gültige JSON-Tokens zurückgibt und nicht wie zuvor codiert n vor

https://developers.facebook.com/docs/apps/changelog#v2_3

Nun, nur um herauszufinden, wie das zu aktualisieren, in scala oder secure_social

+0

Wie ich aus dem Quellcode sehen, Ihre Version von securesocila JSON-Token analysieren: https://github.com/jaliss/securesocial/blob/2.1.4-for-play24/module-code/app/securesocial/core /OAuth2Provider.scala#L72-L83 Wie auch immer, können Sie die neueste securesocial-Version versuchen? –

+0

Dank @AndriyKuba, können Sie klären, welche 'neueste Version? Ich habe gerade versucht "ws.securesocial" %% securesocial "%" 2.1.4-for-play24 "", aber das ist nicht gefunden. Ich bin schon auf 2.1.4 - Ich habe auch M3.0 ausprobiert, konnte es aber nicht bauen. Ich bin bei Play 2.2.4, was meiner Meinung nach ganz anders ist als bei späteren Builds. – pedalpete

+0

Außerdem habe ich gerade den Code, auf den Sie hingewiesen haben, auf einen Patch überprüft, an dem ich gearbeitet habe, und der Oauth2provider buildInfo ist in beiden Zweigen derselbe. – pedalpete

Antwort

0

Da Sie 2.1.4 verwenden Ich schlage vor, Sie einen neuen Facebook-Anbieter erstellen, die nicht die enthebt buildInfo-Methode in OAuth2Provider und registrieren Sie diese anstelle der integrierten Methode.

Das sollte Sie ziemlich schnell gehen.