Search code examples
javascripttypescriptvaadin-router

Why does VaadinRouter route me when not authenticated?


I am fiddling around with VaadinRouter,trying to protect routes. Below you can see the onBeforeEnter code of my component to protect:

    authenticatedDummy = true;

    public onBeforeEnter(
        location: RouterLocation,
        commands: PreventAndRedirectCommands
      ): Promise<unknown> | RedirectResult | undefined {
        if (this.authenticatedDummy) {
          console.log('OnBeforeEnter');
    
          return new Promise(resolve => {
            setTimeout(() => {
              resolve(commands.redirect('/home'));
            }, 2000);
          });
        }
        return undefined;
      }

I do not understand why the router routes me, if authenticatedDummy is false. As I read the code, if authenticatedDummy is true, redirect me to '/home' .

Is this the correct way of reading it or am I overlooking something?


Solution

  • I have build the script wrong. It should have been:

     public onBeforeEnter(
            location: RouterLocation,
            commands: PreventAndRedirectCommands
          ): Promise<unknown> | RedirectResult | undefined {
            if (!this.isAuthorized()) {
              console.log('Guarded!');
        
              return new Promise(resolve => {
                setTimeout(() => {
                  resolve(commands.redirect('/'));
                }, 2000);
              });
            }
            return undefined;
          }
    

    It is working like this!