044の登録ユーザー登録機能機能を完了04--

ユーザー登録機能を実装し、ユーザーは、MD5暗号化、塩としてランダムコード塩を使用して暗号化プロセスを使用してパスワードを暗号化して保存する必要があります。また、検証のためにユーザーによるショートコードの入力が必要とされています。

1.インターフェース

(1)路インタフェース:

 

POST /レジスタ

 

(2)結果を返します。

戻り値なし。

ステータスコード:

  • 201:登録成功

  • 400:パラメータが間違っている、登録が失敗しました

  • 500:内部サーバー例外は、登録に失敗しました

(3)基本的なロジック:

  • 1)チェックコードのSMS

  • 2)塩の形成

  • 3)パスワードを暗号化します

  • 4)データベースに

  • 5)Redisの検証コードを削除

2. UserControllerで

/ ** 
     *登録
     * @paramのユーザは、ユーザオブジェクト情報(フォーム送信フォーム、ユーザオブジェクト受信)を受信
     * @param コード受信したフォームパラメータ-電話コード
     * @return 
     * / 
    @PostMapping(「登録」公衆 ResponseEntity <空>の登録(ユーザーユーザー、@RequestParam( "コード" )文字列コード){ 
        ブールブーは = この.userService.register(ユーザー、コード);
         IF(ブー== nullを!|| ブーイングは){
             返すはhttpStatus(ResponseEntity.statusを.BAD_REQUEST).buildは(); 
        } 
        戻り 新しい新規 > <ResponseEntityを(HttpStatus.CREATED)。
    }

3.UserService

 

/ ** 
     *機能レジスタ
     * @paramのユーザー
     * @paramのコード
     * @return 
     * / 
    パブリックブールの登録(ユーザーユーザー、文字列のコード){
         // チェックメッセージ認証コードの 
        文字列= cacheCode この .redisTemplate.opsForValue()。GET (+ key_prefix user.getPhone());
         IF(!StringUtils.equals(コード、cacheCode)){
             リターン falseに; 
        } 

        // 塩形成 
        ストリング塩= CodecUtils.generateSalt(); 
        user.setSalt(塩); 

        // 用パスワードの暗号化
        user.setPassword(CodecUtils.md5Hex(user.getPassword()、塩)); 

        // 必須パラメータの設定はnullで指定されていない 
        user.setId(ヌル); 
        user.setCreated(新しい新しい日付());
         // データベースに追加
        ブール Bは= この == .userMapper.insertSelective(ユーザー)1 ; 

        IF (B){
             // Redisの内のレコードを削除し、登録された
            この .redisTemplate.delete(key_prefix + user.getPhone()); 
        } 
        戻りB; 
    }

 

CodeUtils本明細書で使用する場合:

暗号化ツールは、Apacheキットが必要です。

<依存> 
    <groupIdを>コモンズ・コーデック</ groupIdを> 
    <たartifactId>コモンズ・コーデック</たartifactId> 
</依存関係>

4.テスト

私たちは、テストの郵便配達します:

http://api.leyou.com/api/user/register?username=lucky&password=plj824&phone=17826828544&code=984971

 

Viewデータベース:

 

おすすめ

転載: www.cnblogs.com/luckyplj/p/11626888.html