JS登录验证null

---
title: JS表单验证
---
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
```
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<head>
    <title>Student</title>
    <script language="JavaScript">
        function checkForm() {
            var username = document.getElementById("usernameid").value;
            var password = document.getElementById("passwordid").value;
            if((username=null || username=='') &&(password=null || password=='')){
                alert("用户名或密码不能为空");
                return false;
            }else {
                return true;
            }
        }
    </script>
</head>
<body>
<form method="post" name="myform">
   
            UserName:<input type="text" name="username" id="usernameid" ><br>
            PassWord:<input type="password" name="password"  id="passwordid"><br>
            <input type="submit" value="登录" οnclick="return checkForm();">
            <input type="reset" value="重置" >
</form>

</body>
<%
    
 %>
<jsp:forward page="success.jsp"></jsp:forward>

</html>

```

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先,您需要安装 `@nestjs/passport` 和 `passport-local` 这两个包,用于实现本地登录策略。 然后,您可以创建一个 `AuthService` 来处理登录验证的逻辑: ```typescript import { Injectable } from '@nestjs/common'; import { PassportStrategy } from '@nestjs/passport'; import { Strategy } from 'passport-local'; import { AuthService } from './auth.service'; @Injectable() export class LocalStrategy extends PassportStrategy(Strategy) { constructor(private authService: AuthService) { super({ usernameField: 'email' }); } async validate(email: string, password: string): Promise<any> { const user = await this.authService.validateUser(email, password); if (!user) { throw new UnauthorizedException(); } return user; } } @Injectable() export class AuthService { constructor(private usersService: UsersService) {} async validateUser(email: string, password: string): Promise<any> { const user = await this.usersService.findOneByEmail(email); if (user && await user.comparePassword(password)) { const { password, ...result } = user; return result; } return null; } } ``` 在上面的代码中,我们创建了一个 `LocalStrategy` 类,它继承自 `PassportStrategy`,并使用 `passport-local` 策略。在 `LocalStrategy` 类中,我们实现了 `validate` 方法,用于校验用户输入的用户名和密码是否正确。如果正确,返回用户信息;如果错误,抛出 `UnauthorizedException` 异常。 在 `AuthService` 类中,我们实现了 `validateUser` 方法,用于校验用户输入的用户名和密码是否正确。这个方法返回用户信息,如果用户名或密码不正确,返回 null。 接下来,我们需要在 `AuthModule` 中注册 `LocalStrategy` 和 `AuthService`: ```typescript import { Module } from '@nestjs/common'; import { PassportModule } from '@nestjs/passport'; import { LocalStrategy, AuthService } from './auth.service'; @Module({ imports: [PassportModule], providers: [LocalStrategy, AuthService], }) export class AuthModule {} ``` 最后,我们可以在 `AuthController` 中添加登录接口: ```typescript import { Controller, Request, Post, UseGuards } from '@nestjs/common'; import { AuthGuard } from '@nestjs/passport'; @Controller('auth') export class AuthController { constructor(private authService: AuthService) {} @UseGuards(AuthGuard('local')) @Post('login') async login(@Request() req) { return req.user; } } ``` 在上面的代码中,我们使用 `@UseGuards(AuthGuard('local'))` 装饰器来指定使用 `local` 策略进行登录验证。在 `login` 方法中,我们可以通过 `req.user` 获取到验证通过的用户信息。 以上就是一个简单的 NestJS 登录验证接口的实现方法。当然,实际应用中,您还需要处理用户注册、密码加密等逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

talNot

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值