簡體   English   中英

路由和URL處理Angular

[英]Routing and URL handling Angular

和往常一樣,注冊后端后,請給我發送一個網址以確認帳戶。 我有完整的網址: https : //app.com/confirm/ {userName} / {token}

用戶名和令牌是我需要處理並發送回請求的數據。 問題是我不知道該如何處理。 當我進行路由時:

/confirm/:userName/:token

這是錯誤的,因為令牌具有未知的/(斜杠)數,因此路由認為這是它的路徑。 我該如何解決這個問題? 我嘗試使用RouterActivated和RouterActivatedSnapshot。 我有重定向到錯誤頁面的**,所以當我如上所述進行操作時,它總是轉到錯誤頁面。 有什么建議么?

我認為您應該:

  1. 在將網址添加到電子郵件之前對其進行編碼
  2. 將令牌作為查詢參數傳遞-因為令牌可能很長

您可以嘗試使用自定義UrlMatcher

...
const appRoutes: Routes = [
  {
    matcher: tokenMatcher,
    component: TestComponent
  }
];
...

/**
 * custom url matcher for router config
 */
export function tokenMatcher(url: UrlSegment[]) {

  if (url.length > 2 && url[0].path === 'confirm') {
    return {
      consumed: url,
      posParams: {
        userName: url[1],
        token: new UrlSegment(url.slice(2).map(u => u.path).join('/'), {})
      }
    }
  }

  return null;
}

STACKBLITZ

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM