Angular 7のルートガード句のルートパラメータにアクセスするにはどうすればよいですか?

ファハド・ハッサン|

私はこのようなルートを持っているAngular7アプリを持っています

{ path : 'forgot-password/:resetHash/:email', 
  component : ForgotPasswordComponent, 
  canActivate : [ForgotPasswordPageGuard]},

今、私はその中にあるこのルートにアクセスしようとしparamsましたroute-guardが、ルートパラメータを保護していませんでした。これが私のforgotpassword.route.guard.ts

constructor(private _utilityService: UtilitySerivce, private _dataService: DataService, private _const: Constants, private _router: ActivatedRouteSnapshot) {
}

canActivate = (): boolean => {
    console.log('in link expiry guard')
    let userEmail = this._router.paramMap.get('email');
    let isAllow = false;

    console.log('params : ', userEmail)
    userEmail = this._utilityService.decryptMsgByCryptoJs(userEmail);
    console.log('user email : ', userEmail)
    this._dataService.post(this._const.userResetPasswordLinkExpiry, { email: userEmail }).subscribe(resp => {
        if (resp.success) {
            isAllow = true;
        } else {
            isAllow = false;
        }
    })
    if (isAllow) {
        return true;
    } else {
        this._utilityService.navigate('/login');
        this._dataService.exhangeResetPasswordObsMsg({ event: 'linkExpired' });
        return false;
    }
}

しかし、それはこのエラーを与えています

ここに画像の説明を入力してください

私は何が間違っているのですか?

カートハミルトン

canActivateActivatedRouteSnapshot最初のパラメーターとして受け取るので、それを関数に追加します。

export class MyGuard implements CanActivate {
  canActivate(route: ActivatedRouteSnapshot): boolean => {
    const email = route.paramMap.get('email');

    // the rest of the implementation
  }
}

CanActivateドキュメントからインターフェース

interface CanActivate {
  canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): 
    Observable<boolean | UrlTree> | Promise<boolean | UrlTree> | boolean | UrlTree
}

編集

ガード内でHTTPリクエストを行いたい場合は、Observable<boolean>代わりに戻ります。これがインターフェースから許可されていることがわかります。

export class MyGuard implements CanActivate {
  constructor(private http: HttpClient) {}

  canActivate(route: ActivatedRouteSnapshot): Observable<boolean> => {
    const email = route.paramMap.get('email');

    return this.http.get('some url').pipe(
      // map response to some boolean value that determines the permission
      map((response): boolean => true)
    );
  }
}


この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Angular 11で2つの親のルートパラメータにアクセスするにはどうすればよいですか?

分類Dev

Angular 2のngrxエフェクトのパラメーターにアクセスするにはどうすればよいですか?

分類Dev

Angular:コンストラクターのプライベート入力パラメーターに他のクラスメソッドでアクセスするにはどうすればよいですか?

分類Dev

Angular 2アプリのルートにアクセスするときにクエリ文字列パラメーターをURLに保持するにはどうすればよいですか?

分類Dev

Angular 7でRouteのデフォルトのクエリパラメータを設定するにはどうすればよいですか?

分類Dev

Angular2ルートのパラメーターをAngularの方法で取得するにはどうすればよいですか?

分類Dev

ユーザーがクライアント側のコードを操作してルートにアクセスできないようにするには、Angular2のユーザーからルートを非表示にするにはどうすればよいですか?

分類Dev

Angular 6のルートパラメータから複数のIDを取得するにはどうすればよいですか?

分類Dev

Angular 2/4アプリコンポーネントでルートパラメータを取得するにはどうすればよいですか?

分類Dev

リアクティブフォームでAngularの入力フィールドに触れていない後に非同期バリデーターをトリガーするにはどうすればよいですか?

分類Dev

Angular2の特定の内部ルートパラメータを変更するにはどうすればよいですか?

分類Dev

Angularルートパラメータを使用してユニットテストを適切に実装するにはどうすればよいですか?

分類Dev

Angular-cli:アセットフォルダー外の画像にアクセスするにはどうすればよいですか?

分類Dev

ルートからアセットAngularへのパスを指定するにはどうすればよいですか?

分類Dev

AngularでコンポーネントのCSSスタイルをオーバーライドするにはどうすればよいですか?

分類Dev

Angularプロジェクトをバージョン6から7にアップグレードする際のコンパイルエラーを解決するにはどうすればよいですか?

分類Dev

Angular Material 7のドラッグアンドドロップにプレースホルダーを使用するにはどうすればよいですか?

分類Dev

Angular 9では、フォームをローカルストレージに設定するときに、保存されない特定のパラメーターを指定するにはどうすればよいですか?

分類Dev

SeleniumとPythonを使用してAngularのモーメントピッカーの値にアクセスするにはどうすればよいですか?

分類Dev

Angular2で@Inputのデフォルトパラメータを設定するにはどうすればよいですか?

分類Dev

マテリアルドロップダウンのオートコンプリート選択がAngular8 / 9で別の検索クエリをトリガーしないようにするにはどうすればよいですか?

分類Dev

Angular Material MatTableModule-テンプレートのマットテーブルの外部からcomponent.tsファイルから返されたデータにアクセスするにはどうすればよいですか?

分類Dev

Angular 6の特定のDTOアレイからローカルハードドライブにJSONファイルをエクスポート/インポートするにはどうすればよいですか?

分類Dev

TypeScript、Angular2の派生クラスで基本クラスコンストラクターパラメーターを繰り返さないようにするにはどうすればよいですか?

分類Dev

Angular 7のルーターナビゲーションでスクロールするにはどうすればよいですか?

分類Dev

サブクラスコンポーネントテンプレートのスーパークラスプロパティにアクセスするにはどうすればよいですか?Angular

分類Dev

Angularの子ルートコンポーネントから親コンポーネントのプロパティにアクセスするにはどうすればよいですか?

分類Dev

AngularのHttpClientを使用する場合、URIにマトリックスパラメーターを使用してバックエンドにリクエストを行うにはどうすればよいですか?

分類Dev

マットセルでデータを取得し、ダイアログフォームAngular 7で表示するにはどうすればよいですか?

Related 関連記事

  1. 1

    Angular 11で2つの親のルートパラメータにアクセスするにはどうすればよいですか?

  2. 2

    Angular 2のngrxエフェクトのパラメーターにアクセスするにはどうすればよいですか?

  3. 3

    Angular:コンストラクターのプライベート入力パラメーターに他のクラスメソッドでアクセスするにはどうすればよいですか?

  4. 4

    Angular 2アプリのルートにアクセスするときにクエリ文字列パラメーターをURLに保持するにはどうすればよいですか?

  5. 5

    Angular 7でRouteのデフォルトのクエリパラメータを設定するにはどうすればよいですか?

  6. 6

    Angular2ルートのパラメーターをAngularの方法で取得するにはどうすればよいですか?

  7. 7

    ユーザーがクライアント側のコードを操作してルートにアクセスできないようにするには、Angular2のユーザーからルートを非表示にするにはどうすればよいですか?

  8. 8

    Angular 6のルートパラメータから複数のIDを取得するにはどうすればよいですか?

  9. 9

    Angular 2/4アプリコンポーネントでルートパラメータを取得するにはどうすればよいですか?

  10. 10

    リアクティブフォームでAngularの入力フィールドに触れていない後に非同期バリデーターをトリガーするにはどうすればよいですか?

  11. 11

    Angular2の特定の内部ルートパラメータを変更するにはどうすればよいですか?

  12. 12

    Angularルートパラメータを使用してユニットテストを適切に実装するにはどうすればよいですか?

  13. 13

    Angular-cli:アセットフォルダー外の画像にアクセスするにはどうすればよいですか?

  14. 14

    ルートからアセットAngularへのパスを指定するにはどうすればよいですか?

  15. 15

    AngularでコンポーネントのCSSスタイルをオーバーライドするにはどうすればよいですか?

  16. 16

    Angularプロジェクトをバージョン6から7にアップグレードする際のコンパイルエラーを解決するにはどうすればよいですか?

  17. 17

    Angular Material 7のドラッグアンドドロップにプレースホルダーを使用するにはどうすればよいですか?

  18. 18

    Angular 9では、フォームをローカルストレージに設定するときに、保存されない特定のパラメーターを指定するにはどうすればよいですか?

  19. 19

    SeleniumとPythonを使用してAngularのモーメントピッカーの値にアクセスするにはどうすればよいですか?

  20. 20

    Angular2で@Inputのデフォルトパラメータを設定するにはどうすればよいですか?

  21. 21

    マテリアルドロップダウンのオートコンプリート選択がAngular8 / 9で別の検索クエリをトリガーしないようにするにはどうすればよいですか?

  22. 22

    Angular Material MatTableModule-テンプレートのマットテーブルの外部からcomponent.tsファイルから返されたデータにアクセスするにはどうすればよいですか?

  23. 23

    Angular 6の特定のDTOアレイからローカルハードドライブにJSONファイルをエクスポート/インポートするにはどうすればよいですか?

  24. 24

    TypeScript、Angular2の派生クラスで基本クラスコンストラクターパラメーターを繰り返さないようにするにはどうすればよいですか?

  25. 25

    Angular 7のルーターナビゲーションでスクロールするにはどうすればよいですか?

  26. 26

    サブクラスコンポーネントテンプレートのスーパークラスプロパティにアクセスするにはどうすればよいですか?Angular

  27. 27

    Angularの子ルートコンポーネントから親コンポーネントのプロパティにアクセスするにはどうすればよいですか?

  28. 28

    AngularのHttpClientを使用する場合、URIにマトリックスパラメーターを使用してバックエンドにリクエストを行うにはどうすればよいですか?

  29. 29

    マットセルでデータを取得し、ダイアログフォームAngular 7で表示するにはどうすればよいですか?

ホットタグ

アーカイブ