登录apiToken的task

一、创建项目,对项目进行初始化

git init
添加.gitignore
创建目录
在src/main/java目录下创建包,新建service,api,dto,respository,entity,exception,util这几个文件夹

二、启动springboot项目

添加springboot依赖
在build.gradle文件dependencies里添加

 compile("org.springframework.boot:spring-boot-starter-web")
 testCompile('org.springframework.boot:spring-boot-starter-test')

在buildscript的dependencies中添加插件

  classpath("org.springframework.boot:spring-boot-gradle-  plugin:1.5.7.RELEASE")           
   apply plugin: 'org.springframework.boot'

创建Application.java文件

@SpringBootApplication
public class Application {

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
    }
}

三、用户注册

1写测试

添加junit5依赖
依赖:

testCompile('org.junit.jupiter:junit-jupiter-api:5.0.0')
testRuntime('org.junit.jupiter:junit-jupiter-engine:5.0.0')
testCompile('org.junit.jupiter:junit-jupiter-params:5.0.0')
testCompile('org.junit.platform:junit-platform-launcher:1.0.0')
testCompile('org.junit.platform:junit-platform-runner:1.0.0')
testCompile('com.github.sbrannen:spring-test-junit5:1.0.0')

插件:

apply plugin: 'org.junit.platform.gradle.plugin'
classpath('org.junit.platform:junit-platform-gradle-plugin:1.0.0')

其他:

repositories {
    mavenCentral()
    maven { url 'https://jitpack.io' }
}

编写baseControllerTest
编写UserCreateTest

2登录实现

使用mysql和flyway
添加jpa+mysql+flyway依赖

compile('org.springframework.boot:spring-boot-starter-data-jpa')
compile 'mysql:mysql-connector-java:6.0.6'
compile ('org.flywaydb:flyway-core:4.2.0')

插件:

classpath("org.flywaydb:flyway-gradle-plugin:4.0.3")
apply plugin: 'org.flywaydb.flyway'

使用lombok

需要在idea下载lombok插件

 compileOnly ('org.projectlombok:lombok:1.16.18')

在entity中添加user实体,用户有用户名密码和id
编写userRespository
用户注册service
用户注册controller

四、用户登录

1.测试

创建登录实体loginRequestBody
编写loginTest

2.实现

添加jwt
依赖

compile('org.springframework.boot:spring-boot-starter-security')
compile ('io.jsonwebtoken:jjwt:0.7.0')

配置类
WebsecurityConfig
JWTAuthenticationFilter:判断用户发来的token是否有效

编写TokenAuthRepository以及实现JWTAuthRepositoryImpl:生成token和根据token提取payload

编写loginService:
登录:验证用户信息、获取payload,生成token置于响应头中
判断请求是否含有token
从请求中提取token
从请求的token中生成用户信息
isTokenInBlackList

编写loadUserByUsername方法

编写loginController

你可能感兴趣的:(登录apiToken的task)