본문 바로가기
WIKI 기술 지식 베이스

User Info 서비스

원문 보기 위키 갱신

이 서비스는 사용자 자격 증명 집합에 대한 더 많은 정보를 추출할 수 있게 해줘요.

출처: 문서

본문

이 서비스는 사용자 자격 증명 집합에 대한 더 많은 정보를 추출할 수 있게 해줘요. 구체적으로 사용자 주체에 대한 소유권 엔티티 ref를 추출하는 데 사용할 수 있어요.

참고

아래 예시의 전제 조건인 일반 자격 증명 처리를 위해 auth와 httpAuth 서비스도 함께 참고하세요.

서비스 사용하기

다음 코드 예시에서 userInfo, auth, httpAuth 변수는 각각 coreServices.userInfo와 coreServices.httpAuth 서비스의 의존성 주입 인스턴스라고 가정해요. 백엔드 플러그인의 경우 다음과 같을 수 있어요.

export default createBackendPlugin({
  pluginId: 'my-plugin',
  register(env) {
    env.registerInit({
      deps: {
        auth: coreServices.auth,
        httpAuth: coreServices.httpAuth,
        httpRouter: coreServices.httpRouter,
        userInfo: coreServices.userInfo,
      },
      async init({ auth, httpAuth, httpRouter, userInfo }) {
        // Your code goes here
      },
    });
  },
});

사용자 정보 가져오기

이 예시는 요청에서 사용자 자격 증명을 추출하고 그 주체에 대한 추가 정보를 가져와요.

router.get('/some-request', async (req, res) => {
  const credentials = await httpAuth.credentials(req, { allow: ['user'] });
  const info = await userInfo.getUserInfo(credentials);
});

userInfo 서비스는 사용자 주체를 담은 자격 증명만 다루며, 서비스 주체에 대한 요청은 받아들이지 않아요. 예시 코드에서는 초기 자격 증명 추출이 미리 사용자 자격 증명으로 제한해요. 사용자와 서비스 자격 증명을 모두 허용하는 엔드포인트가 있다면 사용자 정보 추출을 주체 유형 검사로 감싸고 싶을 거예요.

router.get('/some-request', async (req, res) => {
  const credentials = await httpAuth.credentials(req);
  if (auth.isPrincipal(credentials, 'user')) {
    const info = await userInfo.getUserInfo(credentials);
    // ...
  }
});

사용자 정보에는 주어진 사용자에 대해 로그인하는 동안 추출된 데이터가 포함돼요.

더 알아보기 (Learn more)