angular 시행착오

3673 단어 AngularAngular

앵귤러에서 로그인 버튼 눌러서 장고로 이동하면 장고에서 이브온라인으로 로그인하도록 이동시켜줘서 이브에 로그인되면 장고에서 토큰 붙여서 redirect 해줘서 앵귤러가 토큰을 받으면 로그인 하도록 해놨음. 근데 로그인이 안되있어서 못들어갔던 페이지로 들어가면 로그인 컴포넌트로 이동시켜주도록 했는데 이 과정에서 못들어갔던 페이지를 authenticaitonService에 저장해놨음. 근데 이브로 로그인하면서 이브 로그인 창으로 바뀌어버려서 서비스에 저장한 url 변수가 사라지니 아래처럼하면 돌아갈 수 있는 방법이 없음.

// auth.guard.ts
this.authenticationService.returnUrl = state.url
    return this.router.navigate(['/login']);

// login.component.ts
// 장고에서 토큰 붙여서 redirect 해주면
    if('token' in this.route.snapshot.queryParams) {
      // 로그인해서 토큰 로컬스토리지에 저장해주고
      this.authenticationService.login(this.route.snapshot.queryParams);

      // 로그인 페이지 오기 전에 있던 곳으로 돌아감
      if (this.authenticationService.returnUrl) {
        this.router.navigate([this.authenticationService.returnUrl]);
      }
      this.router.navigate(['/']);
    }

해결책으로 어쩔 수 없이 로컬 스토리지에 저장 혹은 rxjs로 처리할거임

좋은 웹페이지 즐겨찾기