Scala & Play 2.0 を使用しています
私はそのようなURLを持っています:
/v1/人/検索/MTIyOjg3YjYzNmU1YTk5MDdkYjY2MzAyODZiM2RkNTMzYzYw
私のルートファイルでは:
POST /v1/people/search/:authToken controllers.v1.Application.searchPeople(authToken: String)
私がやろうとしているのは、安全な特性を作成し、:aythToken を取得して、関数/メソッド呼び出しでそれを置き換えるカスタム アクションを介して検証することです。
アクションを CustomAuthAction にする
def searchPeople(authToken: String) = アクション {暗黙のリクエスト => }
この値を Cookie として設定せずに、既に解析された :authToken に基づいてリクエストを拒否できるように、私はすでにその方法を知っています。
では、すでに渡された play :authToken をカスタムアクションに渡すにはどうすればよいでしょうか?
ありがとう
これが私の解決策です:
case class CheckSessionRequest(val user: User, request: Request[AnyContent]) extends WrappedRequest(request)
def RequireAuthToken(f: CheckSessionRequest => Result): Action[AnyContent] = {
Action { request =>
UserValidation.findUserByAuthToken(StringUtil.getAuthTokenFromURL(request.toString)).map { user =>
f(CheckSessionRequest(user, request))
}.getOrElse( // STRANGE ERROR
Ok(Json.generate(StatusHandler("failed","Unknown Login Error","{}"))).withHeaders(
CONTENT_TYPE -> "application/json"
)
)
}
}