chrome.identity

설명

chrome.identity API를 사용하여 OAuth2 액세스 토큰을 가져옵니다.

권한

identity

유형

AccountInfo

속성

  • id

    문자열

    계정의 고유 식별자입니다. 이 ID는 계정을 유지하는 동안 변경되지 않습니다.

AccountStatus

Chrome 84 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

열거형

"SYNC"
기본 계정에 동기화가 사용 설정되어 있음을 지정합니다.

'ANY'
기본 계정이 있음을 명시합니다(있는 경우).

GetAuthTokenResult

Chrome 105 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

속성

  • grantedScopes

    string[] 선택사항

    확장 프로그램에 부여된 OAuth2 범위 목록입니다.

  • 토큰

    문자열(선택사항)

    요청과 연결된 특정 토큰입니다.

InvalidTokenDetails

속성

  • 토큰

    문자열

    캐시에서 삭제해야 하는 특정 토큰입니다.

ProfileDetails

Chrome 84 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

속성

  • accountStatus

    AccountStatus 선택사항

    ProfileUserInfo를 반환해야 하는 프로필에 로그인한 기본 계정의 상태입니다. 기본값은 SYNC 계정 상태입니다.

ProfileUserInfo

속성

  • 이메일

    문자열

    현재 프로필에 로그인된 사용자 계정의 이메일 주소입니다. 사용자가 로그인하지 않았거나 identity.email 매니페스트 권한이 지정되지 않은 경우 비어 있습니다.

  • id

    문자열

    계정의 고유 식별자입니다. 이 ID는 계정을 유지하는 동안 변경되지 않습니다. 사용자가 로그인하지 않았거나 (M41 이상) identity.email 매니페스트 권한이 지정되지 않은 경우 비어 있습니다.

TokenDetails

속성

  • 계정

    AccountInfo 선택사항

    토큰을 반환해야 하는 계정 ID입니다. 지정하지 않으면 함수에서 Chrome 프로필의 계정(있는 경우 동기화 계정, 그렇지 않은 경우 첫 번째 Google 웹 계정)을 사용합니다.

  • enableGranularPermissions

    불리언 선택사항

    Chrome 87 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    enableGranularPermissions 플래그를 사용하면 요청된 권한이 개별적으로 부여되거나 거부되는 세분화된 권한 동의 화면을 확장 프로그램이 조기에 선택할 수 있습니다.

  • 양방향

    불리언 선택사항

    토큰을 가져오려면 사용자가 Chrome에 로그인하거나 애플리케이션의 요청된 범위를 승인해야 할 수 있습니다. 대화형 플래그가 true이면 getAuthToken는 필요에 따라 사용자에게 메시지를 표시합니다. 플래그가 false이거나 생략된 경우 getAuthToken는 프롬프트가 필요할 때마다 실패를 반환합니다.

  • 범위

    string[] 선택사항

    요청할 OAuth2 범위 목록입니다.

    scopes 필드가 있으면 manifest.json에 지정된 범위 목록이 재정의됩니다.

WebAuthFlowDetails

속성

  • abortOnLoadForNonInteractive

    불리언 선택사항

    Chrome 113 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    페이지가 로드된 후 비대화형 요청에 대해 launchWebAuthFlow를 종료할지 여부입니다. 이 매개변수는 대화형 흐름에 영향을 미치지 않습니다.

    true (기본값)로 설정하면 페이지 로드 후 흐름이 즉시 종료됩니다. false로 설정하면 timeoutMsForNonInteractive가 경과한 후에만 흐름이 종료됩니다. 이는 페이지가 로드된 후 JavaScript를 사용하여 리디렉션을 수행하는 ID 공급자에게 유용합니다.

  • 양방향

    불리언 선택사항

    대화형 모드에서 인증 흐름을 시작할지 여부입니다.

    일부 인증 흐름은 즉시 결과 URL로 리디렉션될 수 있으므로 launchWebAuthFlow에서는 첫 번째 탐색이 최종 URL로 리디렉션되거나 표시되어야 할 페이지의 로드를 완료할 때까지 웹 뷰를 숨깁니다.

    interactive 플래그가 true인 경우 페이지 로드가 완료될 때 창이 표시됩니다. 플래그가 false이거나 생략된 경우 초기 탐색이 흐름을 완료하지 않으면 launchWebAuthFlow가 오류와 함께 반환됩니다.

    리디렉션에 JavaScript를 사용하는 흐름의 경우 timeoutMsForNonInteractive 설정과 함께 abortOnLoadForNonInteractivefalse로 설정하여 페이지에서 리디렉션을 실행할 수 있도록 할 수 있습니다.

  • timeoutMsForNonInteractive

    숫자 선택사항

    Chrome 113 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    비대화형 모드로 총 launchWebAuthFlow를 실행할 수 있는 최대 시간(밀리초)입니다. interactivefalse인 경우에만 효과가 있습니다.

  • URL

    문자열

    인증 흐름을 시작하는 URL입니다.

메서드

clearAllCachedAuthTokens()

<ph type="x-smartling-placeholder"></ph> 프로미스 Chrome 87 이상
chrome.identity.clearAllCachedAuthTokens(
  callback?: function,
)

Identity API의 상태를 재설정합니다.

  • 토큰 캐시에서 모든 OAuth2 액세스 토큰을 삭제합니다.
  • 사용자의 계정 환경설정 삭제
  • 모든 인증 흐름에서 사용자 승인 취소

매개변수

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • 프로미스<void>

    Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

getAccounts()

<ph type="x-smartling-placeholder"></ph> 프로미스 에서 확인하세요. 개발자 채널
chrome.identity.getAccounts(
  callback?: function,
)

프로필에 있는 계정을 설명하는 AccountInfo 객체의 목록을 검색합니다.

getAccounts는 개발자 채널에서만 지원됩니다.

매개변수

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (accounts: AccountInfo[]) => void

반환 값

  • Promise&lt;AccountInfo[]&gt;

    프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

getAuthToken()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.identity.getAuthToken(
  details?: TokenDetails,
  callback?: function,
)

manifest.json의 oauth2 섹션에 지정된 클라이언트 ID 및 범위를 사용하여 OAuth2 액세스 토큰을 가져옵니다.

Identity API는 메모리에 액세스 토큰을 캐시하므로 토큰이 필요할 때마다 getAuthToken를 비대화형으로 호출해도 됩니다. 토큰 캐시는 만료를 자동으로 처리합니다.

좋은 사용자 경험을 위해 승인의 목적을 설명하는 앱의 UI에서 대화형 토큰 요청을 시작하는 것이 중요합니다. 이렇게 하지 않으면 사용자에게 승인 요청 또는 Chrome 로그인 화면이 표시되지만 로그인하지 않은 경우 컨텍스트가 표시되지 않습니다. 특히 앱을 처음 실행할 때는 getAuthToken를 대화형으로 사용하지 마세요.

참고: 콜백으로 호출하면 객체를 반환하는 대신 이 함수가 콜백에 전달된 별도의 인수로 두 속성을 반환합니다.

매개변수

  • 세부정보

    TokenDetails 선택사항

    토큰 옵션

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (result: GetAuthTokenResult) => void

    • Chrome 105 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

반환 값

  • Promise&lt;GetAuthTokenResult&gt;

    Chrome 105 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

getProfileUserInfo()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.identity.getProfileUserInfo(
  details?: ProfileDetails,
  callback?: function,
)

프로필에 로그인한 사용자의 이메일 주소 및 난독화된 GAIA ID를 검색합니다.

identity.email 매니페스트 권한이 필요합니다. 그렇지 않으면 빈 결과를 반환합니다.

이 API는 두 가지 면에서 identity.getAccounts와 다릅니다. 반환된 정보는 오프라인에서 사용할 수 있으며 프로필의 기본 계정에만 적용됩니다.

매개변수

  • 세부정보

    ProfileDetails 선택사항

    Chrome 84 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로필 옵션

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (userInfo: ProfileUserInfo) => void

반환 값

  • Promise&lt;ProfileUserInfo&gt;

    Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

getRedirectURL()

chrome.identity.getRedirectURL(
  path?: string,
)

launchWebAuthFlow에서 사용할 리디렉션 URL을 생성합니다.

생성된 URL은 https://<app-id>.chromiumapp.org/* 패턴과 일치합니다.

매개변수

  • 경로

    문자열(선택사항)

    생성된 URL의 끝에 추가되는 경로입니다.

반환 값

  • 문자열

launchWebAuthFlow()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.identity.launchWebAuthFlow(
  details: WebAuthFlowDetails,
  callback?: function,
)

지정된 URL에서 인증 흐름을 시작합니다.

이 메서드는 웹 뷰를 시작하고 제공업체의 인증 흐름에 있는 첫 번째 URL로 이동하여 Google 이외의 ID 공급업체에 대한 인증 흐름을 사용 설정합니다. 제공업체가 https://<app-id>.chromiumapp.org/* 패턴과 일치하는 URL로 리디렉션하면 창이 닫히고 최종 리디렉션 URL이 callback 함수에 전달됩니다.

우수한 사용자 경험을 위해 앱의 UI에서 승인의 목적을 설명하는 대화형 인증 흐름이 시작되는 것이 중요합니다. 이렇게 하지 않으면 사용자에게 컨텍스트 없이 승인 요청이 전송됩니다. 특히 앱을 처음 실행할 때는 대화형 인증 흐름을 실행하지 마세요.

매개변수

  • 세부정보

    WebAuth 흐름 옵션

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    (responseUrl?: string) => void

    • responseUrl

      문자열(선택사항)

반환 값

  • 프로미스<문자열 | 정의되지 않음>

    Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

removeCachedAuthToken()

<ph type="x-smartling-placeholder"></ph> 프로미스 를 통해 개인정보처리방침을 정의할 수 있습니다.
chrome.identity.removeCachedAuthToken(
  details: InvalidTokenDetails,
  callback?: function,
)

Identity API의 토큰 캐시에서 OAuth2 액세스 토큰을 삭제합니다.

잘못된 액세스 토큰으로 확인되면 이를 removeCachedAuthToken에 전달하여 캐시에서 삭제해야 합니다. 그러면 앱은 getAuthToken를 사용하여 새 토큰을 검색할 수 있습니다.

매개변수

  • 세부정보

    토큰 정보입니다.

  • 콜백

    함수 선택사항

    callback 매개변수는 다음과 같습니다.

    () => void

반환 값

  • 프로미스<void>

    Chrome 106 이상 를 통해 개인정보처리방침을 정의할 수 있습니다.

    프로미스는 Manifest V3 이상에서 지원되지만 이전 버전과의 호환성입니다. 같은 함수 호출에서 두 가지를 모두 사용할 수는 없습니다. 이 프로미스는 콜백에 전달된 것과 동일한 유형으로 확인됩니다.

이벤트

onSignInChanged

chrome.identity.onSignInChanged.addListener(
  callback: function,
)

사용자 프로필에서 계정의 로그인 상태가 변경되면 실행됩니다.

매개변수

  • 콜백

    함수

    callback 매개변수는 다음과 같습니다.

    (account: AccountInfo, signedIn: boolean) => void