인증 및 페이지 새로 고침시 AngularJS에서 사용자 데이터 가져 오기

Alex7

로그인, 등록, 서버에서 사용자 데이터 가져 오기 등과 같은 모든 인증 문제를 처리하는 데 도움이되는 AuthService를 만들었습니다.

로그인, 페이지 새로 고침 및 새로 고침이 트리거되면 서비스에서 사용자 데이터를 가져와 서비스를 포함하는 컨트롤러에서 사용할 수 있도록하는 솔루션을 찾고 있습니다. vm.user = AuthService.getUserData ()와 같은 것을 갖고 싶습니다. 그러면 서비스에서 세션 변수가 반환됩니다. 이 같은:

function getUserData(){
    if (session) {
        return session.user;
    }
    return null;
}

$ rootScope. $ on ( '$ stateChangeStart'에 다음이 있습니다.

AuthService.loadSessionData();

다음으로 번역됩니다.

function loadSessionData() {
    $http({
            url: API.URL+'auth/session-data',
            method: 'GET'
        })
    .success(function(response)
    {
        session = response;
    })
    .error(function(err){
        console.log(err);
    });
};

여기서 문제 중 하나는 AuthService.getUserData ()에 시간 제한을 설정해야한다는 것입니다. 이것이 실행될 때 서버에서 세션 데이터를 검색하는 호출이 아직 완료되지 않았기 때문에 이것은 나쁜 습관입니다.

다음은 완전한 서비스 코드입니다. http://pastebin.com/QpHrKJmb

역마차

해결을 사용하는 것은 어떻습니까? 내가 올바르게 이해했다면 어쨌든이 데이터를 컨트롤러에 저장하고 싶습니다.

이것을 상태 정의에 추가 할 수 있습니다.

.state ( 'bla', { 
    템플릿 : '...' 
    컨트롤러 : 'BlaCtrl', 
    해결 : { 
        사용자 : [ 'AuthService', function (AuthService) { 
            return AuthService.loadSessionData (); 
        } 
    } 
}

또한 loadSessionData 함수를 변경하십시오. ($ q를 AuthService 에 주입해야합니다 )

function loadSessionData () { 

    return $ q (function (resolve, reject) { 
        $ http ({ 
            url : API.URL + 'auth / session-data', 
            method : 'GET' 
        }) 
        .success (function (response) 
        { 
            if (응답) { 
                resolve (response);             
            } else { 
                reject (); 
            } 
        }) 
        .error (function (err) { 
            reject (err); 
        }); 
    }) 
}

마지막으로 resolve 함수 사용자 개체를 컨트롤러에 추가합니다 .


    app.contoller ( 'BlaCtrl', [ '$ scope', 'user', function ($ scope, user) { 
        $ scope.user = user; 
    }]);

이것은 무엇을 성취합니까?

  1. 사용자에게 유효한 세션이 없거나 오류가 발생하면 상태 변경이 거부되고 $ stateChangeError 이벤트 가 발생합니다. 해당 이벤트에 대해 $ stateChangeStart에 대해 했던 것처럼 수신 하고 모달로 응답하거나 오류 페이지로 리디렉션하는 등의 작업을 수행 할 수 있습니다.

  2. 모든 상태 변경이 아닌 필요한 상태에 대해서만 세션을 가져옵니다.

  3. 상태는 사용자 데이터도 해결 될 때까지 (해결 또는 거부에 의해) 해결되지 않습니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

사용자 로그인시 PHP 코드로 데이터베이스에서 특정 데이터 가져 오기

분류에서Dev

데이터 가져 오기 및보기 페이지에 표시

분류에서Dev

XML 포함에서 데이터 가져 오기 어린이 및 PHP를 사용하여 페이지에 표시

분류에서Dev

사용자가 다음 페이지 매김 페이지 또는 페이지 새로 고침을 클릭 한 후 확인란 상태 및 게시 값을 페이지에 저장하는 방법은 무엇입니까?

분류에서Dev

로그인시 사용자 컬렉션에서 사용자 데이터 가져 오기

분류에서Dev

Symfony : 404 오류 페이지에서 로그인 한 사용자 가져 오기

분류에서Dev

Nextjs 페이지를 새로 고침 할 때 데이터 가져 오기

분류에서Dev

Firebase 인증 : 로그인 후 사용자 최신 데이터 가져 오기

분류에서Dev

ASP.NET MVC에서 인증 된 ID 사용자 데이터 가져 오기

분류에서Dev

입력에서 데이터를 가져 오기 전에 양식 새로 고침

분류에서Dev

axios를 사용하여 로컬 JSON 파일에서 데이터 가져 오기 및 데이터 표시

분류에서Dev

JavaScript-페이지 새로 고침 후에도 번호 저장 및 증가

분류에서Dev

OnlineExam의 countdowntimer는 경과 시간과 함께 자동 제출 및 AJAX에 의해 다음 데이터로드 및 페이지가 새로 고쳐지면 새로 고침시 이전 시간으로 다음로드

분류에서Dev

새 데이터를 가져 오기위한 NSFetchedResultsController 새로 고침

분류에서Dev

로그인시 기록 된 사용자 데이터보기 / 가져 오기-CodeIgniter

분류에서Dev

API에서 데이터를 가져 오려면 페이지를 새로 고침해야합니다.

분류에서Dev

웹 사이트에 로그인하고 페이지에서 HTML 가져 오기

분류에서Dev

JQuery : 페이지 새로 고침시 스크롤 위치 가져 오기

분류에서Dev

페이지를 새로 고치지 않고 데이터 가져 오기 및 제출

분류에서Dev

Angular Firebase ng 사용자가 인증 된 경우 리스너가 페이지 새로 고침에서 작동하지 않습니다.

분류에서Dev

PHP에서 로그인 후 사용자 데이터 가져 오기

분류에서Dev

페이지를 새로 고치지 않고 데이터베이스에서 데이터 가져 오기 / 가져 오기

분류에서Dev

사용자 지정 404 오류 페이지에서 URL 새로 고침

분류에서Dev

페이지 새로 고침시 서비스의 데이터가 지워짐

분류에서Dev

useEffect를 사용하여 페이지로드시 컨텍스트에서 데이터 가져 오기

분류에서Dev

사용자 정의 어댑터에서 데이터가 변경된 후 목록보기 새로 고침

분류에서Dev

Java에서 API HtmlUnit을 사용하여 로그인 및 웹 페이지 가져 오기

분류에서Dev

PHP를 사용하여 데이터베이스에서 여러 확인란 값 가져 오기 및 표시

분류에서Dev

페이지 새로 고침시 컨트롤러에서 모델을 가져 오는 방법

Related 관련 기사

  1. 1

    사용자 로그인시 PHP 코드로 데이터베이스에서 특정 데이터 가져 오기

  2. 2

    데이터 가져 오기 및보기 페이지에 표시

  3. 3

    XML 포함에서 데이터 가져 오기 어린이 및 PHP를 사용하여 페이지에 표시

  4. 4

    사용자가 다음 페이지 매김 페이지 또는 페이지 새로 고침을 클릭 한 후 확인란 상태 및 게시 값을 페이지에 저장하는 방법은 무엇입니까?

  5. 5

    로그인시 사용자 컬렉션에서 사용자 데이터 가져 오기

  6. 6

    Symfony : 404 오류 페이지에서 로그인 한 사용자 가져 오기

  7. 7

    Nextjs 페이지를 새로 고침 할 때 데이터 가져 오기

  8. 8

    Firebase 인증 : 로그인 후 사용자 최신 데이터 가져 오기

  9. 9

    ASP.NET MVC에서 인증 된 ID 사용자 데이터 가져 오기

  10. 10

    입력에서 데이터를 가져 오기 전에 양식 새로 고침

  11. 11

    axios를 사용하여 로컬 JSON 파일에서 데이터 가져 오기 및 데이터 표시

  12. 12

    JavaScript-페이지 새로 고침 후에도 번호 저장 및 증가

  13. 13

    OnlineExam의 countdowntimer는 경과 시간과 함께 자동 제출 및 AJAX에 의해 다음 데이터로드 및 페이지가 새로 고쳐지면 새로 고침시 이전 시간으로 다음로드

  14. 14

    새 데이터를 가져 오기위한 NSFetchedResultsController 새로 고침

  15. 15

    로그인시 기록 된 사용자 데이터보기 / 가져 오기-CodeIgniter

  16. 16

    API에서 데이터를 가져 오려면 페이지를 새로 고침해야합니다.

  17. 17

    웹 사이트에 로그인하고 페이지에서 HTML 가져 오기

  18. 18

    JQuery : 페이지 새로 고침시 스크롤 위치 가져 오기

  19. 19

    페이지를 새로 고치지 않고 데이터 가져 오기 및 제출

  20. 20

    Angular Firebase ng 사용자가 인증 된 경우 리스너가 페이지 새로 고침에서 작동하지 않습니다.

  21. 21

    PHP에서 로그인 후 사용자 데이터 가져 오기

  22. 22

    페이지를 새로 고치지 않고 데이터베이스에서 데이터 가져 오기 / 가져 오기

  23. 23

    사용자 지정 404 오류 페이지에서 URL 새로 고침

  24. 24

    페이지 새로 고침시 서비스의 데이터가 지워짐

  25. 25

    useEffect를 사용하여 페이지로드시 컨텍스트에서 데이터 가져 오기

  26. 26

    사용자 정의 어댑터에서 데이터가 변경된 후 목록보기 새로 고침

  27. 27

    Java에서 API HtmlUnit을 사용하여 로그인 및 웹 페이지 가져 오기

  28. 28

    PHP를 사용하여 데이터베이스에서 여러 확인란 값 가져 오기 및 표시

  29. 29

    페이지 새로 고침시 컨트롤러에서 모델을 가져 오는 방법

뜨겁다태그

보관