0.1.3 • Published 3 years ago

onemedics-sdk-user v0.1.3

Weekly downloads
-
License
ISC
Repository
github
Last release
3 years ago

Onemedics Library

이 프로젝트는 회원가입/로그인 기능을 간편하게 만들수 있도록 SDK 제공하는데 그 목적이 있습니다.

개발문서는 아래링크 참조

1. 설치

$npm i onemedics-sdk-user[@<version>]

2. 사용예제

기본 UserModule 생성 및 초기 로그인 REST

import * as React from "react";
import { useRef } from "react";
import { UserModule, Token } from "onemedics-sdk-user";
import { AxiosResponse } from "axios";

export function App() {
  const userid = useRef<HTMLInputElement | null>(null);
  const password = useRef<HTMLInputElement | null>(null);
  // 유저모듈 초기화
  const userModule = new UserModule({
    clientId: "test1",
    uri: "https://dev.one.net:9000",
    token: "Basic ZG8zb28td1ViOmNlY3JldA==",
  });

  const onLogin = () => {
    // 아이디 비밀번호로 초기 로그인
    userModule
      .signIn({
        username: userid.current?.value,
        password: password.current?.value,
      })
      .then(({ data }: AxiosResponse<Token>) => {
        /* 토큰정보 저장 프로세스 수행 및 로그인 후 프로세스 수행 */
      });
  };

  return (
    <div className='App'>
      <input type='text' ref={userid} placeholder={'아이디'} />
      <input type='password' ref={password} placeholder={'아이디'} />
      <button onClick={onLogin}>로그인</button>
    </div>
  );
}

export default App;

3. API 리스트

Core

User

Core

ApolloToolKit

ApolloClient 생성과 생성된 ApolloClient을 이용한 별도의 query, mutate 등의 함수를 제공합니다.

- 요청변수
변수병유형설명
variablesclientIdstring프로젝트로 구분되는 clientId를 넣습니다.
uristring호출할 서버의 uri
tokenstringheader에 전달될 초기 token 값(Basic)
- 예시
import { ApolloToolKit } from "onemedics-sdk-user";
export const apolloToolKit = new ApolloToolKit({
  clientId: "dosoo-web",
  uri: "https://dev.one.net/test/graphql",
  token: "Basic b25123421===",
});

UserError

회원모듈 에러처리를 위한 Error Class( extends Error )

User

UserModule

모듈 사용자로부터 넘겨받은 객체로 새로운 UserModule 객체를 생성합니다.
Core의 ApolloToolKit을 포함하고 있습니다.

- 요청변수
변수병유형설명
clientIdstring프로젝트로 구분되는 clientId를 넣습니다.
uristring호출할 서버의 uri
tokenstringheader에 전달될 초기 token 값(Basic)
graphqlEndpoint [optional]stringgraphql endpoint( default: '/user/graphql')
restBaseURL [optional]stringREST API base URL( default: 변수 uri 로 초기화됨)
- 예시
//App.tsx
import {UserModule} from "onemedics-sdk-user";

export const userModule = new UserModule({ clientId: "dosoo-web", uri: "https://dev.one.net/test/graphql", token: "Basic b25123421===", });

#### requestAuthNumber
<a name="request-auth-num"></a>
>[인증공통]인증번호 생성 요청   
##### - 요청변수
|변수병| |유형|설명|
|---|:---:|:---:|---|
|variables|authNumType| `'SIGNUP'` `'FIND_ID'` `'FIND_PW'` `'MODIFY_MYINFO'`  |인증번호 유형|
| |phone|`string`|모바일 번호|
##### - 예제
```typescript jsx
import {userModule} from './App'
 userModule
       .requestAuthNumber({
         variables: {
           authNumType: 'SIGNUP',
           phone: '01012345678'
         },
       })
       .then((result) => {
         /*result process*/
       });

identifyAuthNumber 미구현

인증공통인증번호 생성 확인

- 요청변수
변수병유형설명
variables
- 예제
import { userModule } from "[유저모듈 경로]";

userModule .identifyAuthNumber({ variables: {}, }) .then((result) => { /result process/ });

#### checkDuplicateId
<a name="check-duplicate-id"></a>
>[회원가입]아이디 중복체크를 수행합니다.   
##### - 요청변수
|변수병| |유형|설명|
|---|:---:|:---:|---|
|variables|loginId|`string`|로그인 아이디|
##### - 예제
 ```typescript jsx
 import { userModule } from "[유저모듈 경로]";
 
  userModule
        .checkDuplicateId({
          variables: {
          },
        })
        .then((result) => {
          /*result process*/
        });

getTerms

회원가입약관 가져오기

- 요청변수
변수병유형설명
variables
- 예제
import { userModule } from "[유저모듈 경로]";

userModule .getTerms({ variables: {}, }) .then((result) => { /result process/ });

#### getTermsBy
<a name="get-terms-by"></a>
> [회원가입]약관 가져오기
##### - 요청변수
|변수병| |유형|설명|
|---|:---:|:---:|---|
| variables | | | |
##### - 예제
```typescript jsx
import { userModule } from "[유저모듈 경로]";

 userModule
       .getTermsBy({
         variables: {},
       })
       .then((result) => {
         /*result process*/
       });

signUp

회원가입약관 가져오기

- 요청변수
변수병유형설명
clientIdstring클라이언트 아이디
loginIdstring로그인 아이디
passwordstring비밀번호
usernamestring유저명
phonestring핸드폰번호
marketingAgreementboolean마케팅 수신동의
authNumIdnumber인증번호 ID
authNumstring인증번호

getToken

로그인토큰 가져오기

- 요청변수
변수병유형설명
usernamestring아이디
passwordstring암호
grant_typeoptionalstring인증유형(default: 'password')

getMe

로그인회원정보 가져오기

- 요청변수
변수병유형설명
tokenstringaccess_token값

signIn

로그인아이디 패스워드 로그인 가져오기

- 요청변수
변수병유형설명
usernamestring아이디
passwordstring암호
grant_typeoptionalstring인증유형(default: 'password')

refreshToken

로그인token정보 업데이트 가져오기

- 요청변수
변수병유형설명
refresh_tokenstringrefresh_token값
grant_type[optional]string인증유형(default: 'refresh_token'

serializeForm

로그인 FormData 생성

- 요청변수
변수병유형설명
paramsobjectFormData로 생성할 object

4. 개발 방법

TDD 개발방식을 지향합니다.
모든 코드들은 테스트 코드 작성 및 테스트 후에 실제 비즈니스 로직 코드로 옯겨집니다.
초기 개발 및 테스트는 Mockup 파일(fixtures.json)로 진행합니다.

.gitignore 파일과 .npmignore 파일을 혼용한 이유

.gitignore : github 업로드시 제외하기위해 사용되었습니다.
.npmignore : github 주소를 통해 npm설치 시 특정파일(예:Mockup 파일)은 제외하기 위해 사용.

5. 버전 관리

CHANGELOG.md 파일 참조 부탁드립니다.

⬆ 위로가기

0.1.13

3 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago

0.0.1

3 years ago