몇 가지 방법이 있습니다. 플라 비안과 같은 일부 라이브러리에서이를 수행하거나 직접 할 수 있습니다. 인증 지시문이 그리 많지는 않지만, 스프레이와 함께 제공되는 표준 인증 메커니즘을 "실행"하기 만하면 here에 대해 읽을 수 있습니다. 이것이 원하는 것이 아니거나이를 수행하는 방법을 이해하지 못했다면 여기에 작은 예제가 있습니다.
토큰 인증과 함께 가장 쉬운 경우를 생각해 봅시다. 토큰은 일부 저장소에 저장되고 비교할 사용자를 인증하기 위해 사용됩니다. 그것은을 가지고 원인, 당신은 authenticate
지침을 살펴 경우 Authentication[User]
이 Either[Rejection, T]
입니다
def validate(token: AuthToken): Future[Authentication[User]] = {
torage.findUserByToken(token) match {
case Some(user) => Right(user)
case None => Left(AuthenticationFailedRejection(..))
}
}
는, 그것이 Magnet pattern 구현 및 AuthMagnet
필요로하고 당신이 그것을 얻기 위해 모든 것을 가지고있다 : 그래서 우리는이 기능이 변환 :
implicit def fromFutureAuth[T](auth: ⇒ Future[Authentication[T]])(implicit executor: ExecutionContext): AuthMagnet[T] =
new AuthMagnet(onSuccess(auth))
그래서 지금 당신은 그것을 사용할 수 있습니다
post {
headerValueByName("Access_Token") { access_token => {
authenticate(validate(access_token)) { user => {
......
......
}
}
}
사용자 계정을 안전하게 저장할 수있는 &을 찾으려면 stormpath을 확인하십시오. 스프레이 API와 통합하기가 쉽습니다.
http://tools.ietf.org/html/rfc6749 라이브러리를 사용하거나 작업을 함께 전달하면 OAuth2 서버를 만드는 것이 쉬운 일은 아닙니다. – flavian