2
我已經使用Play2.3斯卡拉開發的網絡插座,我想實現在使用oauth-provider播放斯卡拉網絡插座的oauth2。網絡插座在播放斯卡拉網絡插座的oauth2實施
代碼片段:對於REST服務的oauth2的
object LoginWS {
def props(out: ActorRef) = Props(new LoginWS(out))
}
class LoginWS(out: ActorRef) extends Actor {
def receive = {
case json_req: JsObject =>
val login_status : String = "Success"
out ! Json.toJson(JsObject(Seq("login_status" -> JsString(login_status))))
}
}
object WebSocketController extends Controller {
def login = WebSocket.acceptWithActor[JsValue, JsValue] { request =>
out =>
LoginWS.props(out)
}
}
代碼片段:
我已經使用了的oauth2實施 「scala-oauth2-provider-slick」 樣本。
trait MyOAuth extends OAuth2Provider {
override val tokenEndpoint: TokenEndpoint = MyTokenEndpoint
}
object OAuth2Controller extends Controller with MyOAuth {
val cats = TableQuery[CatsTable]
implicit val catFormat = Json.format[Cat]
def accessToken = Action.async { implicit request =>
issueAccessToken(new Oauth2DataHandler())
}
def list = Action.async { implicit request =>
authorize(new Oauth2DataHandler()) { authInfo =>
DBAction { implicit rs =>
Ok(toJson(cats.list))
}.apply(request)
}
}
}
如何在上面的web-socket代碼中實現oauth2?
有人知道,如何實現對上述網絡插座的oauth2?
更新:
我試圖實現的OAuth和網絡插口:
代碼片段:
def login = WebSocket.tryAcceptWithActor[JsValue, JsValue] { request =>
authorize(new Oauth2DataHandler()) { authInfo =>
val user = authInfo.user // User is defined on your system
println(user.toString())
}
}
得到了以下問題:
1) polymorphic expression cannot be instantiated to expected type; found : [A]scala.concurrent.Future[play.api.mvc.Result] required: Either[play.api.mvc.Result,play.api.mvc.WebSocket.HandlerProps] (which expands to) Either[play.api.mvc.Result,akka.actor.ActorRef ⇒ akka.actor.Props]
2) type mismatch; found : Unit required: scala.concurrent.Future[play.api.mvc.Result]
感謝您的答覆。當我添加這一行時,我得到了「方法映射沒有足夠的參數:(隱式執行程序:scala.concurrent.ExecutionContext)scala.concurrent.Future [帶有可序列化的產品與scala.util.Etil [play.api.mvc.Result ,akka.actor.ActorRef => akka.actor.Props]]。未指定的值參數執行程序。「錯誤。 – SKK
你能否請檢查下面的問題。請幫助我進一步處理。謝謝。 http://stackoverflow.com/q/37183156/1584121 – SKK
如果你有時間,請看看這個問題。謝謝! - http://stackoverflow.com/q/37183156/1584121 – SKK