天天看點

電商項目(二十)登入注冊SSO(單點登入)使用者的注冊和登入

使用者的注冊和登入

首先我們先了解一下什麼是單點登入?

單點登入SSO(SingleSignOn )就是通過使用者的一次性鑒别登陸。當使用者的身份認證伺服器上登入一次以後,即可獲得通路單點登入系統中其他相關聯的系統和軟體的權限,同時這種實作是不需要管理者對使用者的登入狀态或者其他資訊進行修改,這意味在多個應用系統中,使用者隻需要一次登入就可以通路所有互相信任的應用系統。這種方式減少了由登入産生的時間消耗,輔助了使用者管理,是目前比較流行的。

電商項目(二十)登入注冊SSO(單點登入)使用者的注冊和登入

1.建立使用者注冊和登入的服務frontend_sso

首先pom檔案

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <parent>
        <artifactId>bz_parent</artifactId>
        <groupId>com.bjsxt</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <artifactId>frontend_sso</artifactId>

    <dependencies>
        <!--mapper-->
        <dependency>
            <groupId>com.bjsxt</groupId>
            <artifactId>common_mapper</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <!--utils-->
        <dependency>
            <groupId>com.bjsxt</groupId>
            <artifactId>common_utils</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>

        <!--Spring Boot Web Starter-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <!--Spring Cloud Eureka Client Starter-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <!--Spring Cloud OpenFeign Starter-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-openfeign</artifactId>
        </dependency>

        <dependency>
            <groupId>com.bjsxt</groupId>
            <artifactId>common_tx_manager_client</artifactId>
            <version>1.0-SNAPSHOT</version>
        </dependency>
        <!--Spring Cloud Config Client Starter-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-config</artifactId>
        </dependency>

        <!--Spring Cloud AMQP: (RabbitMQ) Starter-->
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-bus-amqp</artifactId>
        </dependency>

        <!--Logback-->
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
        </dependency>
    </dependencies>
    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>
</project>
           

配置檔案application.yml

啟動類

2. 實作使用者的注冊

驗證使用者注冊的資訊(使用者名,手機号的驗證)

在frontend_sso子產品中,建立SSOController,新增方法:對使用者的注冊資訊進行校驗,方法的傳回值:Result,方法的參數:@PathVariable String checkValue,@PathVariable Integer checkFlag

在業務層實作此方法。

電商項目(二十)登入注冊SSO(單點登入)使用者的注冊和登入

完成注冊(分布式事務的處理)

在frontend_sso子產品中,在SSOController中,新增方法:使用者注冊,方法的傳回值:Result,方法的參數:TbUser tbUser

在業務層實作使用者注冊,密碼需要進行MD5的加密處理。

電商項目(二十)登入注冊SSO(單點登入)使用者的注冊和登入

3.實作使用者的登入

将使用者添加到緩存

在common_redis中建立SSOController,新增方法:将使用者資訊緩存到Redis中,傳回值:void,參數:@RequestBody TbUser user,@RequestParam String userToken

電商項目(二十)登入注冊SSO(單點登入)使用者的注冊和登入

使用者的登入

在frontend_sso子產品,新增方法:使用者登入,方法傳回值:Result,方法的參數:String username,String password

在業務層中實作使用者登入,

電商項目(二十)登入注冊SSO(單點登入)使用者的注冊和登入

定義一個方法實作使用者登入業務的處理

電商項目(二十)登入注冊SSO(單點登入)使用者的注冊和登入

定義一個方法:将使用者添加到redis中

定義feign的接口類,增加方法:添加使用者的

電商項目(二十)登入注冊SSO(單點登入)使用者的注冊和登入

使用者登出

在common_redis子產品,在SSOController中,新增方法:使用者登出,方法傳回值:void ,方法參數:@RequestParam String userToken

在業務層中實作使用者登出

電商項目(二十)登入注冊SSO(單點登入)使用者的注冊和登入

在frontend_sso子產品,實作使用者退出的方法,方法的傳回值:Result,方法的參數:String token

在業務層實作使用者的登出方法

電商項目(二十)登入注冊SSO(單點登入)使用者的注冊和登入