我试图用OAUTH2 (与2.4.2相同)和SecureSocial来实现play 2.4.4身份验证,我的Scala版本是2.11.7
我在SecureSocial上学习了SecureSocial演示的Githhub示例。
我首先在文件play.plugins中没有任何内容,然后尝试使用以下内容之一登录
http://localhost:9000/api/custom/login最后会出现以下错误:
[RuntimeException: [securesocial] Missing properties for provider 'facebook'. Verify your configuration file is properly set.]好,两个问题,一个没有登录,2,即使有一个登录我不感兴趣的facebook,只有谷歌。
在SecureSocial网站上的配置之后,有一个文件play.plugin,您需要在其中寻址您想要的提供者和处理身份验证的用户服务(用户服务可以在github示例中找到)
我的play.plugins看起来是这样的:
9998:services.InMemoryUserService 10002:securesocial.core.providers.GoogleProvider
现在,当我再次尝试相同的URL时,会得到以下错误:
接口(接口):不能从类play.utils.Reflect$.getClass(Reflect.scala:145) play.api.Plugins$$anonfun$loadPlugins$1.apply(Plugins.scala:88) play.api.Plugins$$anonfun$loadPlugins$1.apply(Plugins.scala:87) scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245) scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245) scala.collection.immutable.List.foreach(List.scala:381) scala.collection.TraversableLike$class.map(scala.collection.immutable.List.map(List.scala:285) play.api.Plugins$.loadPlugins(Plugins.scala:87) play.api.Plugins$$anonfun$apply$4.apply(Plugins.scala:100) .
什么!?
好的,现在我尝试使用其他身份验证url:
http://localhost:9000/auth/authenticate/google我得到同样的错误,如果我远程play.plugins,我得到一个Guice异常,我不知道如何修复。
谢谢
发布于 2015-12-01 19:19:23
在线文档是针对旧版本的(它们还没有更新)。
插件不再在模块中使用。您现在拥有的是一个RuntimeEnvironment类,您可以使用它来配置要使用的服务。还有一个RuntimeEnvironment.Default类,您也可以使用它作为基础,这就是演示程序在这里使用的内容:https://github.com/jaliss/securesocial/blob/3.0-M4/samples/scala/demo/app/Global.scala#L27。
在您的示例中,您将只包含Google提供程序,因此基本上覆盖提供者如下:
override lazy val providers = ListMap(
include(
new GoogleProvider(routes,cacheService,oauth2ClientFor(GoogleProvider.Google)))
)您需要在Google控制台中创建应用程序来获取oauth键。您需要在securesocial.conf中设置这些键(查找google部分)。重要的是,确保在Google+中为应用程序启用Google+ API,否则由于缺乏权限,登录将无法工作。
一旦您定义了您的环境,就需要创建一个模块来绑定它。示例就是这样做的:https://github.com/jaliss/securesocial/blob/3.0-M4/samples/scala/demo/app/DemoModule.scala#L6。
最后,您告诉Play在application.conf:https://github.com/jaliss/securesocial/blob/3.0-M4/samples/scala/demo/conf/application.conf#L13中使用您的模块。
https://stackoverflow.com/questions/34022468
复制相似问题