2016-06-22 5 views
3

ionic2 및 django rest 프레임 워크로 모바일 기본 응용 프로그램을 개발하려고합니다. 그리고 위대한 jwt 인증을 지원하는 django-rest-framework-jwt 라이브러리를 발견했습니다. 그러나 토큰이 만료 될 때마다 모바일 앱 사용자는 사용자 이름과 비밀번호를 입력해야합니다.장고 휴식 프레임 워크와 서비스에 단일 로그인의 가능한 방법?

아래의 다른 stackoverflow 질문을 이미 확인했습니다. JWT (JSON Web Token) automatic prolongation of expiration

사용자 이름과 암호를 다시 입력 할 필요가없는 방법이 있습니까? 또는 토큰이 만료되지 않도록하고 모바일 앱의 로컬 저장소에 저장하여 사용자가 다시 로그인 할 필요가 없도록 만드시겠습니까?

미리 감사드립니다.

+0

시도해 보셨습니까? https://github.com/JamesRitchie/django-rest-framework-expiring-tokens –

답변

3

Django 및 DRF 기반 프로젝트에서 동일한 시나리오를 실행했으며 JWT를 사용하여 Single Sign-On을 구현하려고했습니다. djangorestframework-jwt 라이브러리는 서로 다른 프로젝트간에 SSO 기능을 제공하는 데 거의 집중하지 않았기 때문에 신뢰 정의와 공개/개인 키 쌍을 올바르게 설정하는 새로운 라이브러리를 만들었습니다.

은이 라이브러리는 JWT 토큰의 두 가지 유형을 제공합니다

  1. 만료되지 않는 기본 로그인 응용 프로그램에 대한 세션 토큰 (일명 "새로 고침 토큰".)에 액세스하기위한

  2. 단명 인증 토큰 다른 앱 (기본 앱에서 제공하는 권한을 포함)

클라이언트가 기본 로그인 애플리케이션에 처음 로그인해야합니다 사용자 이름과 비밀번호를 게시하여 클라이언트는 동일한 서버에 대한 후속 요청을 인증 할 수있는 영구 세션 토큰을 받게됩니다. 이 토큰에는 사용 권한/권한 부여 정보가 포함되어 있지 않으므로 SSO를 다른 응용 프로그램에 사용할 수 없습니다.

그런 다음 클라이언트는 세션 토큰을 사용하여 권한 토큰을 가져 와서 갱신해야합니다. 이러한 보조 토큰은 수명이 짧으며 (15 분 1 시간) 사용자가 발급 시점에서 가지고있는 사용 권한을 포함합니다. 이러한 토큰은 다른 서비스에 액세스하는 데 사용되며, 그러면 토큰의 유효 기간 동안 JWT 페이로드의 사용 권한을 신뢰합니다.

현재 버전은 v0.0.3 (알파)이지만 베타 버전과 최종 제품 품질 릴리스로 빠르게 이동하고 있습니다. API는 이미 비교적 안정적이며 2016 년 6 월 30 일까지 최종본이어야합니다. 프레임 워크는 베타 단계에 도달 한 다음 주에 전체 테스트 범위를 갖습니다.

프로젝트 페이지와 github에서 README를 확인하십시오.

https://github.com/namespace-ee/django-rest-framework-sso

https://pypi.python.org/pypi/djangorestframework-sso

은이 사용 사례에 맞는 것이 있으면 알려 주시기 바랍니다, 그것은이있는 경우 모든 기능이 필요합니다. 설정에 대해 기꺼이 도와 드리겠습니다.

+0

또한 라이브러리로 SSO를 구현하려고합니다. 하지만 기본 프로젝트에서 발급 한 토큰으로 클라이언트를 인증하는 방법을 모르겠습니다. –