ionic에 facebook 로그인 달기

###django model

  • 테이블을 user 테이블과 Facebook 테이블을 따로 만들고 외래키로 연결한다.
  • 값이 날라오면 user 테이블에 들어갈 값으로 user row 생성하고 Facebook row로 생성
  • user 칼럼에 소셜로 가입했는 지 boolean으로 저장
  • 위의 칼럼값으로 로그인할 때 판단해서 처리

###djang view

  • 그냥 requset.data 값을 알아서 나누어서 테이블에 저장하면됨
  • token값을 생성해서 response에 담아서 보내줌

###ionic

  • openfb, ngopenfb 라이브러리를 사용
ngFB.init({appId: '고유번호', tokenStore: $window.localStorage, accessToken : $window.localStorage.fbAccessToken});
  • ionic run할 때 선언하며, 내 appid와 localstorage에 저장하는 것을 명시해줘야 함
  • 처음 로그인할 때 facebook token을 가져옴
  • 토큰값을 로컬 스토리지에 저장되며, facebook token을 이용해서 다른 정보를 가져옴
  • 가져온 정보를 서버에 보내서 저장함
  var token = resp.data.token;
      var username = resp.data.username;
      var userid = resp.data.id;

      if (token && username) {
        $window.localStorage.token = token;
        $window.localStorage.username = username;
        $window.localStorage.userid = userid;
        deferred.resolve(true);
        $state.go('tab.slack');
      } else {
        deferred.reject('Invalid data received from server');
      }

###결론

  • session 관련한 삽질을 한 후, 안보이던게 보임
  • 어느정도나마 인증과, 소셜로그인의 흐름을 이해함
Written on 2016 Jan, 21