2016-07-04 2 views
0

결국 기존 (Ember가 아닌) API를 대체하고 추가 기능을 제공해야하는 애플리케이션을 개발하려고합니다.인증을 사용하여 사용자 정의 API 호출하기

새 앱에서 아직 구현되지 않은 항목에 대해서는 사용자의 싱글 사인온 (SSO) 기능을 사용하여 사용자를 기존 앱으로 리디렉션하고 싶습니다. 내가 상상 워크 플로는 이것이다 :

  1. 사용자가 새에 로그인 (엠버)이 응용 프로그램은
  2. 새로운 응용 프로그램은 새로운 응용 프로그램이 생성
  3. 토큰 SSO를 반환하는 엔드 포인트에 API 호출을 링크하거나이 버튼을 클릭 SSO 토큰을 포함한 링크,

나는 사용자가 포함 된 JSON 웹 토큰을 사용하여, 사용자 별 정보를 반환하는 API 호출에 대한 사용자를 인증하는 엠버 - 단순 인증을 사용 (신규 또는 같은 창에서)을 엽니 다 신분증.

위의 2 단계에서 API 호출에 해당 토큰을 포함시켜야하지만 손실이 발생하는 방법과 호출을 구현할 위치도 있습니다. 이 경우 Ember.Route이 필요합니까 (내가 AuthenticatedRouteMixin에 넣을 수있는 곳)? SSO 토큰을 내 모델의 일부로 간주하지 않으므로 올바르게 보이지 않습니다. 어떻게 든 세션의 토큰을 가져 와서 직접 아약스 호출에 포함시킬 수 있습니까? 해야합니까?

답변

1

ember-simple-auth는 해당 정보에 액세스 할 수있는 SessionService을 제공합니다.

내 추천은 ember-ajax을 사용하여 실제 요청을하고, ajax 서비스를 재정 의하여 세션 서비스 authorize 메서드를 호출하는 것입니다.

그런 다음 요청을 권한 부여하기 위해 권한 부여 프로그램을 구현해야합니다.

세부 구현은 권한 부여 자와 요청에 토큰을 포함하는 방법에 따라 다릅니다. 헤더, 쿼리 매개 변수 또는 본문입니다.

+0

감사 :-) ember-ajax는 누락 된 요소입니다. 명시 적으로'authorize' 메소드를 호출하지는 않았지만'headers [ 'authorization'] = 'Bearer'+ this.get ('session.session.content.authenticated.token')'을 설정합니다. 이는 우아하지는 않지만 적어도 작동합니다. –

관련 문제