角路由或。 .Net核心重定向,哪种身份验证应该首选?

时间:2019-10-21 18:52:04

标签: .net angular authentication asp.net-core asp.net-core-webapi

我是一名初学者全栈开发人员。我想制作一个简单的登录身份验证系统。我在后端使用.Net Core 3.0,在前端使用Angular 8,在数据库中使用MsSQL Server

我实现了一个提供Sign up功能的Web API(我的问题是关于Sign in身份验证)。我还使用Sign inSign upAngular UI实施了一个页面。

如果在Signing in时用户输入了真实的密码,我应该重定向/路由到“仪表板”页面。

如果用户在Signing in时输入了真实的密码,则我不应该在任何地方重定向/路由。

我认为我找到了解决此问题的两种方法。

第一个是POST电子邮件和密码,由用户输入到API,然后检查数据库中键入的电子邮件的输入密码是否为true,如果为true,则重定向到仪表板页面。稍后在后端(.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
        }
      }
    )

哪种方法是正确的?如果两者都正确,哪个更有效? 解决此类问题的最佳实践方法是什么?

0 个答案:

没有答案
相关问题