ユーザー登録機能を実装し、ユーザーは、MD5暗号化、塩としてランダムコード塩を使用して暗号化プロセスを使用してパスワードを暗号化して保存する必要があります。また、検証のためにユーザーによるショートコードの入力が必要とされています。
1.インターフェース
(1)路インタフェース:
POST /レジスタ
(2)結果を返します。
-
201:登録成功
-
400:パラメータが間違っている、登録が失敗しました
-
-
1)チェックコードのSMS
-
2)塩の形成
-
3)パスワードを暗号化します
-
4)データベースに
-
/ ** *登録 * @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データベース: