2017-01-14 11 views
2

OAuth2 인증, 인증 및 사용자 연결에 어려움을 겪고 있습니다. 내가 지금까지 해본 내용 :Apgigility OAuth2, User/Client/AuthorizationCode 간의 링크

나는 클라이언트를 만들었지 만 비밀 스럽다. 모든 리디렉션 등이 작동합니다. 부여 유형이 승인 코드 인 경우 user_idNULL입니다. user_id은 액세스 토큰의 경우 NULL이지만 액세스 토큰의 경우에는 입니다. 토큰 또는 인증 코드에 액세스하도록 사용자를 할당하려면 어떻게해야합니까? 로그인 화면을 제공하는 모듈이 있습니까? 나는 "허용"또는 "허용하지 않음"신청서 만 받았지만 사용자 이름과 암호는 묻지 않았습니다.

업데이트 :
질문은 OAuth2를 액세스 타사 페이지, 예를 제공하기 위해 관련 IFTTT. 그들은 /oauth/authorize 페이지를 열고 어딘가에 로그인 가이드 사용자가 있습니까?! 관련 사용자를 결정 하시겠습니까? 이것에 대한 기존 모듈이 있습니까?

타사 사이트 (예 : IFTTT는 보안상의 이유로 암호 부여 유형을 사용하지 않습니다. 그리고 워크 플로우는 다른 페이지와 비교됩니다 : 사용자가 인증 되었습니까? 예 : 수락/거부 버튼을 표시합니다. 아니요 : 사용자는 로그인해야하며 나중에/oauth/authorize 페이지로 리디렉션됩니다. 그렇다면 사용자가 로그인했는지 아닌지 확인하고 로그인 마스크로 리디렉션하는 일반적인 방법이 있습니까?

답변

1

OAuth2를 사용하여 사용자 이름과 비밀번호로 인증하려면 grant_type=password을 사용해야합니다.

나는 Apigility에 로그인 화면이 있는지 확실하지 않습니다. 그러나 Apigility는 이미 OAuth2를 통해 하나 이상의 끝점에서이를 허용하고 있으므로 더 구체적으로 OAuth2 Server Library for PHP으로 허용해야한다고 생각하지 않습니다.

  1. 클라이언트에 부여 유형을 추가 할 수있는 방법

    :
    • 클라이언트 테이블 (oauth_clients.grant_types 열)에이 "password"을 설정합니다.
  2. 새 인증 어댑터 유형 = oauth2를 만듭니다.
  3. 아래의 authetication url에 대한 게시물을 만드십시오. apigility가 실행되고 /oauth이 구성된 인증 어댑터 URL입니다

    • url=localhost:8080/oauth

      localhost:8080은입니다.
    • 페이로드 :

      { 
          "username": "USERNAME", 
          "password": "PASSWORD", 
          "grant_type": "password", 
          "client_id": "CLIENT_ID" 
      } 
      
  4. 는 로그인이 성공적으로는 액세스 토큰을 반환합니다.
+0

이 단계의 Thx. 이 기능은 이미 작동하지만 제작중인 앱과 페이지에서만 작동합니다. 예. IFTTT에 대한 액세스를 제공하려는 경우 grant_type password를 사용할 수 없습니다. 문서에 기초하여 : [link] (https : // apigility.org/documentation/auth/authentication-oauth2) 사용자로 로그인하지 않고 "허용"/ "허용 안함"을 묻는 메시지가 항상 나타납니다. –

+1

@AlexanderLampret 왜'grant_type' 암호를 사용할 수 없습니까? 질문의 특정 측면에 대해 자세히 설명해 주시겠습니까? – Wilt

+0

내 질문을 업데이트했습니다. 나는 서비스를 제공하고있다. 내 기본 Android 및 iOS 앱에서는 보조금 유형 비밀번호를 사용하며 작동합니다. 그러나 타사 사이트 (예 : IFTTT는 보안상의 이유로이 유형을 사용하지 않습니다. 그리고 워크 플로우는 다른 페이지와 비교됩니다 : 사용자가 인증 되었습니까? 예 : 수락/거부 버튼을 표시합니다. 아니요 : 사용자는 로그인해야하며 나중에/oauth/authorize 페이지로 리디렉션됩니다. 사용자가 로그인했는지 확인하는 일반적인 방법이 있습니까? 그렇다면 로그인 마스크로 리디렉션 하시겠습니까? –