Угловая маршрутизация или. .Net Core Redirection, который должен быть предпочтительным для аутентификации? - PullRequest
0 голосов
/ 21 октября 2019

Я начинающий разработчик полного стека. Я хочу сделать простую систему аутентификации входа. Я использую .Net Core 3.0 в бэкэнде и Angular 8 в веб-интерфейсе, MsSQL Server в дБ.

Я реализовал веб-API, обеспечивающий функциональность Sign up (моя проблема с аутентификацией Sign in). Я также реализовал страницу для Sign in и Sign up пользовательского интерфейса с Angular.

Если пользователь вводит правильный пароль при Signing in, я должен перенаправить / перенаправить на страницу «Панель инструментов».

Если пользователь вводит правильный пароль при Signing in, я не должен никуда перенаправлять / маршрутизировать.

Я думаю, что нашел два подхода к решению этой проблемы.

Во-первых, POST адрес электронной почты и пароль, которые вводятся пользователем в API, проверьте, является ли введенный пароль верным для введенного адреса электронной почты в базе данных, и, если это правда, затем перенаправьте на страницу панели мониторинга. Вскоре сделайте проверку в бэкэнде (.Net Core 3.0). Пример таков:

public IActionResult checkPasswordIsTrue(){

if (tpyedPassword == realPassword)
{
     return Redirect("http://192.168.1.22:4200/dashboard");
}

Второй: POST адрес электронной почты и пароль, которые вводятся пользователем в API, GET из реального пароля для введенного адреса электронной почты. Затем проверьте, что введенный пароль является истинным, и, если он является истинным (с использованием canActivate условной маршрутизации), направьте его на страницу панели инструментов. Коротко выполните проверку во внешнем интерфейсе (Angular). Пример:

HTML:

 <button mat-raised-button (click)="signIn()" color="primary" routerLink="/dashboard" routerLinkActive="active" >Sign in</button>

и TypeScipt файл:

signIn(): void {
    this.httpClient.get(`http://192.168.1.35:32450/user/${this.user.email}`).subscribe(
      (dbPassword:any)=>{
        if(dbPassword==this.user.password){
           isActivate=true; //so go to dashboard
        }
      }
    )

Какой подход верен? Если оба они верны, какой из них более эффективен? Каков наилучший подход к решению этой проблемы?

...