2020-12-21

楓^發表於2020-12-21

註冊登入鑑權

使用者註冊

1.1:使用者註冊

	前臺需要給我們為您傳遞使用者名稱、密碼、手機號、手機驗證。驗證使用者前臺傳過來的資料是否符合規範,使用的Hibernate Validator框架實現的服務端表單
校驗。簡訊驗證碼這塊,我們為你採用的阿里的大於簡訊介面來做的,單獨搭建了一個簡訊微服務,用於傳送的簡訊請求請求通過MQ訊息由簡訊微服務消費,
進行簡訊傳送。密碼使用的是Spring提供的CryptPasswordEncoder加密運算,分成加密和驗證兩個過程:
		- 加密:演算法會對明文密碼使用UUID隨機生成一個salt結合密碼來加密,得到最終的
		密文。
		- 驗證密碼:需要先拿到加密後的密碼和要驗證的密碼,根據已加密的密碼來推測出
		salt,然後利用相同的演算法和salt對要驗證碼的密碼加密,與已加密的密碼的密碼對比
		即可。
   簡訊驗證碼的有效期為30分鐘,為了驗證簡訊驗證碼的時效性,我們儲存到了redis中,手機號作為key,驗證碼作為value,設定有效期為30分鐘。
另外為了防止惡意攻擊,我們限制一個手機號1個分鐘之內只能傳送一次驗證碼,這個也是通過redis來實現的,手機號拼接“_yes”為key,驗證碼為value,
設定為有效期為1分鐘。為了防止機器惡意呼叫驗證碼介面,我們這個地方使用圖形驗證來進行限制。
![在這裡插入圖片描述](https://img-blog.csdnimg.cn/20201221210349331.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl81MzMyNzcyMQ==,size_16,color_FFFFFF,t_70#pic_center)

相關文章