阿里短信服务集成
技術分享交流群:1125844267,大家可以進來嘮嗑閑聊
前言
目前阿里短信不支持個人申請簽名和模板,所以只能使用測試版固定的簽名和模板
提示:以下是本篇文章正文內容,下面案例可供參考
一、控制臺配置
1、進入阿里云官網,搜索“短信服務”進行購買
2、配置用戶組和用戶,獲取AccessKey ID和AccessKey Secret
我們當然可以直接使用第一個“繼續使用AccessKey”來直接創建AccessKey,但是為了安全(人家也有安全提示),所以咱就聽話使用第二個。點擊進入后配置用戶組,添加關于短信的權限,然后添加一個用戶,屬于短信這個用戶組,這個用戶就自動擁有的用戶組所擁有的短信權限。
創建用戶的時候一定要記得勾選這個,并且記下來AccessKey Secret,因為只顯示一次,之后就沒了。
二、代碼實現
上邊直接點擊進去就有阿里提供的各種語言的發送短信的代碼
它有一個同步的代碼和一個異步的代碼,異步的按它的代碼放到項目中報錯,所以直接用的同步的
驗證的時候從redis中取出對應手機號的驗證碼。我這是集成到Oauth2中的短信登錄,參數獲取可能不太一樣,但是驗證邏輯肯定都是一樣的
String mobile = httpServletRequest.getParameter("mobile");String codeRequest = httpServletRequest.getParameter("code");String codeRedis = redisTemplate.opsForValue().get(mobile) == null ? "" : String.valueOf(redisTemplate.opsForValue().get(mobile));SysUser sysUser = userService.getUserByMobile(mobile);if(sysUser == null){//throw new SessionAuthenticationException("該手機號不是系統注冊用戶");throw new SessionAuthenticationException("messages.codeLoginTip1");}if(StringUtils.isEmpty(mobile)){//throw new SessionAuthenticationException("手機號不能為空");throw new SessionAuthenticationException("messages.codeLoginTip2");}if(StringUtils.isEmpty(codeRequest)){//throw new SessionAuthenticationException("短信驗證碼不能為空");throw new SessionAuthenticationException("messages.codeLoginTip3");}if(StringUtils.isEmpty(codeRedis)){//throw new SessionAuthenticationException("短信驗證碼已過期");throw new SessionAuthenticationException("messages.codeLoginTip4");}if(!codeRequest.equals(codeRedis)){//throw new SessionAuthenticationException("短信驗證碼不正確");throw new SessionAuthenticationException("messages.codeLoginTip5");}總結
- 上一篇: B. Kay and Snowflake
- 下一篇: 基于三点说构成的夹角提取特征点