2016-07-17 2 views
0

쿠키 세션 인증 (기안)을 처음부터 사용하고있는 레일 웹이 있습니다. 이제 레일 애플리케이션에서 사용할 수있는 API를 사용하는 이온 모바일 애플리케이션을 개발 중입니다.레일스 토큰과 쿠키 세션을 동시에 작성하십시오.

이 새로운 응용 프로그램에 JWT 또는 토큰 인증을 사용하는 것으로 간주했지만 인증 방법, 쿠키 및 JWT를 결합하는 방법을 찾을 수 없습니다. 또한 두 응용 프로그램에는 서로 다른 요구 사항이 있습니다. 예를 들어, 웹에서 사용자는 특정 역할이있는 경우에만 동시 세션을 가질 수 있습니다. 반대의 경우 모바일 애플리케이션에서는 제한없이 동시 세션을 가질 수 있습니다.

두 가지 방법을 결합하는 방법을 알아 내려고 노력했지만 많이 찾지 못했습니다. 어쩌면 나는 방법 중 하나 (JWT)를 사용하거나 다른 접근법 (문지기)을 사용하는 것을 고려해야합니다.

+0

모바일 응용 프로그램은 세션 기반 인증을 따를 것이다'token' 기반 인증 및 웹을 사용할 수 있습니다, 당신은 API에 대해 별도의 컨트롤러를 했는가? – uzaif

+0

아니요, 가능하면 두 응용 프로그램에 동일한 컨트롤러를 사용하고 싶습니다. – ReyLitch

+1

세션 기반 인증 용으로 컨트롤러 1에 두 개의 before_filter 콜백을 사용하고 토큰 기반 인증 용으로 하나를 사용할 수 있습니다. – uzaif

답변

0

마지막으로 해결책을 찾았습니다. refaelosZac Stewart에 따르면, 나는 JWT 보석과 결합하여 첫 번째에 대한 새로운 전략으로 마지막을 사용합니다. 이렇게하면 JWT 토큰을 사용하지 않을 때 기본 설정 (내 경우 database_authenticatable)을 선택하게됩니다. 그렇지 않으면 JWT 전략을 사용하게됩니다.

그러나 사용자가 인증되지 않고 자격 증명을 얻기 위해 Session # create에 게시 요청을하면 devise/warden이 선택한 전략은 database_authenticatable입니다. 이를 피하기 위해 요청에 새 매개 변수를 추가해야했지만이 경우에만 토큰이 요청에 나타나면 새 전략이 선택 되었기 때문에이 경우에만 필요합니다.

은 참조 :

관련 문제