Аутентификация иногда работает, иногда не в режиме отладки - PullRequest
0 голосов
/ 26 февраля 2020

Я хочу, чтобы в производстве любой пользователь проходил аутентификацию. Поэтому я добавил canActivate.

const routes: Routes= {
   {path: 'test', canActivate: [AuthGuard], component: MyComponent}
}; 

@Injectable()
 export class AuthGuard implements CanActivate {
  constructor(private router: Router, private auth) {
      if (!this.auth.isLoggedIn) {
    // redirect the user
    this.router.navigate(['/login']);
    return false;
  }

  return true;
  }
}     

Это работает хорошо, однако в процессе отладки я обнаружил, что каждый раз, когда мне приходится входить в систему, это тратит впустую мое время. Поэтому я решил немного изменить свой компонент, в этом случае мне не нужно входить в систему в режиме отладки.

ngOnInit() {
const path = windows.location.hostname;
   if (path.includes('localhost')) {
      this.processing(); // no login therefore
      } else {
      this.processing();
   }
}   

Однако я обнаружил, что даже в режиме отладки (localhost) иногда приходится войти, но иногда нет. Я думаю, что логика c моего условия и может активировать конфликты. Может быть, одна переопределяет другую?

Для получения более подробной информации, когда я запускаю командную строку dotnet run для запуска приложения, аутентификация работает. Если я запускаю приложение из Visual Studio (нажмите F5), то вход в систему не требуется.

В моем основном приложении. net я использую службу sap. Что-то вроде

app.UseSpa(spa =>
  {
    // To learn more about options for serving an Angular SPA from ASP.NET Core,
    // see https://go.microsoft.com/fwlink/?linkid=864501

    spa.Options.SourcePath = "ClientApp";

    if (env.IsDevelopment())
    {
      spa.UseAngularCliServer(npmScript: "start");
    }
  });

1 Ответ

0 голосов
/ 26 февраля 2020

Пожалуйста, проверьте местоположение logi c внутри AuthGuard и просто верните true, если 'localhost' включен в имя хоста.

иногда мне нужно войти, но иногда нет.

потому что ngOnInit () не вызывается каждый раз, когда вы пытаетесь войти в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...