【问题标题】:How to Customize SecureSocial 3.0 Views?如何自定义 SecureSocial 3.0 视图?
【发布时间】:2015-07-27 02:37:23
【问题描述】:

我读到了这个question

我有相同的实现。不仅不起作用,而且在调试中,我什至从未输入过这段代码!

object MyRuntimeEnvironment extends RuntimeEnvironment.Default[BasicUser] {
    override val userService: UserService[BasicUser] = new SlickUserService
    override lazy val authenticatorService: AuthenticatorService[BasicUser] = new AuthenticatorService[BasicUser](
      new CookieAuthenticatorBuilder[BasicUser](new SlickAuthenticatorStore, idGenerator),
      new HttpHeaderAuthenticatorBuilder[BasicUser](new SlickAuthenticatorStore, idGenerator)
    )
    override lazy val viewTemplates: ViewTemplates = new CustomTemplatesController(this)

}

class CustomTemplatesController(env: RuntimeEnvironment[_]) extends ViewTemplates {
  implicit val implicitEnv = env

  override def getLoginPage(form: Form[(String, String)],
                            msg: Option[String] = None)(implicit request: RequestHeader, lang: Lang): Html = {
    //securesocial.views.html.login(form, msg)(request, lang, env)
    views.html.custom_login(form, msg)(request, lang, env)
  }

  override def getSignUpPage(form: Form[RegistrationInfo], token: String)(implicit request: RequestHeader, lang: Lang): Html = {
    securesocial.views.html.Registration.signUp(form, token)(request, lang, env)
  }
}

我想我剩下的唯一选择是从secureSocial github代码中复制粘贴控制器并更改名为...的模板。

有什么想法吗?

【问题讨论】:

  • 您确定要将自定义环境传递给您的控制器吗?
  • 可能就在现场,但由于这个问题我做了一些自定义 facebook OAUTH2 登录。 :D 希望它能对其他人有所帮助。

标签: playframework-2.0 securesocial


【解决方案1】:

您需要告诉播放框架加载您的环境配置。通常这是通过创建一个模块来完成的(假设 MyRuntimeEnvironment 定义在名为 Service 的包中):

package modules;

import com.google.inject.AbstractModule;
import securesocial.core.RuntimeEnvironment;
import service.MyRuntimeEnvironment;

public class EnvironmentModule extends AbstractModule{

    @Override
    protected void configure() {
        MyRuntimeEnvironment environment = new MyRuntimeEnvironment();
        bind(RuntimeEnvironment.class).toInstance(environment);
    }


}

在你的 application.conf 中:

play.modules.enabled += "modules.EnvironmentModule"

这应该会引导您的自定义环境配置并加载您的自定义模板。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多