国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)

這篇具有很好參考價(jià)值的文章主要介紹了【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

一.手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)

前面是站在后臺員工的角度,現(xiàn)在站在消費(fèi)者的角度,當(dāng)客戶從移動端選擇通過驗(yàn)證碼登錄APP,需要調(diào)用云服務(wù)器的短信功能(廠商短信服務(wù)API),后端要做的就是生成驗(yàn)證碼并發(fā)送,并針對請求中客戶收到的驗(yàn)證碼與后端發(fā)送的進(jìn)行比對,確保一致后成功登錄。

【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
首先針對客戶,建立對應(yīng)的數(shù)據(jù)表:

DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
  `id` bigint(20) NOT NULL COMMENT '主鍵',
  `name` varchar(50) COLLATE utf8_bin DEFAULT NULL COMMENT '姓名',
  `phone` varchar(100) COLLATE utf8_bin NOT NULL COMMENT '手機(jī)號',
  `sex` varchar(2) COLLATE utf8_bin DEFAULT NULL COMMENT '性別',
  `id_number` varchar(18) COLLATE utf8_bin DEFAULT NULL COMMENT '身份證號',
  `avatar` varchar(500) COLLATE utf8_bin DEFAULT NULL COMMENT '頭像',
  `status` int(11) DEFAULT '0' COMMENT '狀態(tài) 0:禁用,1:正常',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin COMMENT='用戶信息';

其次,建立相關(guān)實(shí)體類,創(chuàng)建對應(yīng)的Service、Controller層,編寫Mapper接口,從客戶角度出發(fā),要做的是放行客戶模塊的前端資源,在Filter中設(shè)置過濾的URL,修改MP自動填充功能的配置

攔截器里的處理:

//查看用戶登陸狀態(tài) 如果已登錄 則直接放行
if (!(request.getSession().getAttribute("user") == null)) {
    log.info("用戶已登錄!當(dāng)前用戶為:{}", request.getSession().getAttribute("user"));
    //通過ThreadLocal獲取Session中的id
    BaseContext.setCurrentId((Long) request.getSession().getAttribute("user"));
    Long sessionId = BaseContext.getCurrentId();

    filterChain.doFilter(request, response);
    return;
}

下面,重頭戲來了!

在Controller層中編寫針對用戶手機(jī)號來發(fā)送驗(yàn)證碼的方法,主要就是接收來自前端的手機(jī)號碼
導(dǎo)入依賴

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid-spring-boot-starter</artifactId>
            <version>1.1.23</version>
        </dependency>

        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>aliyun-java-sdk-core</artifactId>
            <version>4.5.16</version>
        </dependency>

調(diào)用服務(wù)器廠商的API(后面短信服務(wù)會生成SKD復(fù)制粘貼后修改參數(shù)即可)針對電話號碼發(fā)送定制的短信,并將驗(yàn)證碼存到Session中來校驗(yàn)登錄

@PostMapping("/sendMsg")
public R<String> sendMsg(@RequestBody User user, HttpSession httpSession) {
    //獲取手機(jī)號
    String phone = user.getPhone();

    if (StringUtils.isNotEmpty(phone)) {
        //生成驗(yàn)證碼
        String code = ValidateCodeUtils.generateValidateCode(4).toString();
        log.info("電話:{},驗(yàn)證碼:{}",phone,code);
        //調(diào)用阿里云API發(fā)送短信
        SMSUtils.sendMessage("", "", phone, code);
        //將生成的驗(yàn)證碼保存到Session中
        httpSession.setAttribute(phone, code);

        return R.success("短信發(fā)送成功");
    }
    return R.error("短信發(fā)送失敗");
}

當(dāng)用戶在前端頁面點(diǎn)擊發(fā)送驗(yàn)證碼后,我們根據(jù)傳來的驗(yàn)證碼進(jìn)行登錄:

此時,客戶已經(jīng)接收到短信驗(yàn)證消息,輸入驗(yàn)證碼后點(diǎn)擊進(jìn)行登錄,前端又向我們發(fā)來了請求:
【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
針對此次請求,需要做的就是對用戶輸入的驗(yàn)證碼進(jìn)行校驗(yàn)(在方法體中,可以選擇用Map來封裝)
【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
將<phone,code>封裝到map后,進(jìn)行校驗(yàn),code與Session中的一致則登陸成功,如果根據(jù)phone從user表中查不到數(shù)據(jù)則自動幫他完成注冊(新增用戶信息到表里),反之則登陸失敗
【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
由于前面幾篇文章類似的場景較多,所以這里不做過多解釋。值得注意的是,為了登陸后可以拿到用戶的數(shù)據(jù),此方法里返回User實(shí)體存到Session里。

    @PostMapping("/login")
    public R<User> login(@RequestBody Map userMap, HttpSession httpSession) {
        log.info(userMap.toString());
        //獲取手機(jī)號
        String phone = userMap.get("phone").toString();
        //獲取驗(yàn)證碼

        String code = userMap.get("code").toString();
        //獲取Session里的驗(yàn)證碼

        String sessionCode = httpSession.get("code").toString();
        //驗(yàn)證碼比對(頁面提交的code和存在Session里的code進(jìn)行對比)

        if (!(phone != null && Objects.equals(code,sessionCode))) {//這里要用equals
            //登陸失敗
            return R.error("登陸失敗~");
        }
        //登陸成功
        LambdaQueryWrapper<User> userlqw = new LambdaQueryWrapper<>();
        userlqw.eq(User::getPhone, phone);
         //通過getOne(唯一標(biāo)識)獲得User對象便于以后的注冊存儲
        User user = userService.getOne(userlqw);
        //判斷當(dāng)前是否為新用戶,是的話自動注冊
        if (user == null) {
            //注冊
            User userNew = new User();
            //這里要new一個User并重新賦予它屬性存到表里,因?yàn)閡ser==null
            userNew.setPhone(phone);
            userNew.setStatus(1);
            userService.save(userNew);
            httpSession.setAttribute("user",userNew.getId());
            return R.success(userNew);
        }
        httpSession.setAttribute("user",user.getId());
        return R.success(user);
    }

值得注意的是方法最后的setAttribute(),只有通過他才能將User信息傳到Session中從而通過Filter中的判斷條件

二.阿里云短信發(fā)送服務(wù)操作流程

點(diǎn)擊開始使用子用戶
【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
新建用戶組
【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
創(chuàng)建用戶組
【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
添加權(quán)限【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
添加短信權(quán)限(直接搜sms)
【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
創(chuàng)建用戶
【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
創(chuàng)建完成后,點(diǎn)擊添加到用戶組
【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
隨后創(chuàng)建Accesskey
【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
創(chuàng)建完成后即可獲得屬于自己的AccessKey,記得妥善保管,不要泄露
【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
進(jìn)入短信服務(wù),并開通
【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
申請簽名,創(chuàng)建模板(個人做項(xiàng)目不推薦,需要上交營業(yè)執(zhí)照)
【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
作為個人(學(xué)生黨)使用我們可以使用測試短信服務(wù),因?yàn)椴恍枰辖徊牧虾妥C明比較方便,至于費(fèi)用方面大家充五塊錢就行
【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
發(fā)起調(diào)用后我們就能收到短信啦
【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)
阿里云已經(jīng)給了我們相關(guān)的API在項(xiàng)目中直接調(diào)用即可.文章來源地址http://www.zghlxwxcb.cn/news/detail-434067.html

到了這里,關(guān)于【SpringBoot+MP】阿里云短信測試服務(wù)操作流程、用戶手機(jī)驗(yàn)證碼登錄實(shí)現(xiàn)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 使用阿里云實(shí)現(xiàn)短信發(fā)送服務(wù)(測試版)

    使用阿里云實(shí)現(xiàn)短信發(fā)送服務(wù)(測試版)

    官網(wǎng)發(fā)送測試短信步驟 官網(wǎng)短信測試注冊步驟 注冊阿里云賬號 注冊成功之后 獲取AK 阿里云官網(wǎng)提供的原生API(驗(yàn)證碼發(fā)送) 使用的時候需要完善API,代碼如下

    2024年02月11日
    瀏覽(17)
  • 全網(wǎng)最詳細(xì)SpringBoot、SpringCloud整合阿里云短信服務(wù)
  • SpringBoot整合阿里云短信服務(wù)詳細(xì)過程(保證初學(xué)者也能實(shí)現(xiàn))

    SpringBoot整合阿里云短信服務(wù)詳細(xì)過程(保證初學(xué)者也能實(shí)現(xiàn))

    網(wǎng)上關(guān)于實(shí)操性的文章普遍大部分都記錄不全,要么只記錄重點(diǎn)部分,對于剛學(xué)習(xí)的小伙伴來說看起來是比較困難的 所以,基于這一點(diǎn)。 該文章會詳細(xì)介紹使用SpringBoot整合阿里云短信服務(wù)的每一步過程,同時會將驗(yàn)證碼存放到Redis中并設(shè)置過期時間 , 盡量保證實(shí)戰(zhàn)的同時也

    2023年04月15日
    瀏覽(16)
  • 阿里云OSS服務(wù)使用操作流程

    阿里云OSS服務(wù)使用操作流程

    阿里云對象存儲OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存儲服務(wù),可提供99.9999999999%(12個9)的數(shù)據(jù)持久性,99.995%的數(shù)據(jù)可用性。多種存儲類型供選擇,全面優(yōu)化存儲成本。 OSS具有與平臺無關(guān)的RESTful API接口,您可以在任何應(yīng)用、任何時間、任何地點(diǎn)

    2023年04月09日
    瀏覽(28)
  • springboot集成阿里云短信驗(yàn)證碼

    1.添加pom.xml依賴 2.application.yml添加配置文件 3.創(chuàng)建隨機(jī)驗(yàn)證碼工具類 4.創(chuàng)建發(fā)送驗(yàn)證碼工具類 注意事項(xiàng) :在 application.yml 中配置了 accessKeyID等參數(shù) ,想在一個工具類里面的靜態(tài)方法使用,于是使用了靜態(tài)變量。使用 @Value 注解獲取值,如下: debug發(fā)現(xiàn)獲取不到,為 null 。原因

    2024年02月01日
    瀏覽(20)
  • SpringBoot項(xiàng)目整合阿里云短信業(yè)務(wù)(非常詳細(xì))

    SpringBoot項(xiàng)目整合阿里云短信業(yè)務(wù)(非常詳細(xì))

    詳細(xì)介紹SpringBoot整合阿里云短信服務(wù)的每一步過程,同時會將驗(yàn)證碼存放到Redis中并設(shè)置過期時間,盡量保證實(shí)戰(zhàn)的同時也讓沒做過的好兄弟也能實(shí)現(xiàn)發(fā)短信的功能~ 首先,你需要注冊一個阿里云賬號(如果還沒有),然后在控制臺中創(chuàng)建Access Key。這個Access Key將用于通過AP

    2024年04月27日
    瀏覽(22)
  • 【Springboot】| 阿里云發(fā)送短信驗(yàn)證碼,你會了嗎?

    【Springboot】| 阿里云發(fā)送短信驗(yàn)證碼,你會了嗎?

    專欄 名字 ??Elasticsearch專欄 es ??spring專欄 spring開發(fā) redis專欄 redis學(xué)習(xí)筆記 ??項(xiàng)目專欄 項(xiàng)目集錦 修bug專欄 bug修理廠 獅子之前發(fā)了一篇《郵箱發(fā)送驗(yàn)證碼,你會了嗎?》,很快上了熱度榜單,但是那篇文章只是簡單介紹了如何接收驗(yàn)證碼的流程以及安利了一個接收驗(yàn)證碼的

    2024年02月08日
    瀏覽(16)
  • springboot整合阿里大于并結(jié)合mq發(fā)送短信

    在 pom.xml 文件中添加以下依賴: 在 application.properties 文件中添加以下配置: 其中, accessKeyId 和 accessKeySecret 是阿里云控制臺上的AccessKey, signName 是短信簽名, templateCode 是短信模板ID。 在Spring Boot中,我們可以使用MQ來異步發(fā)送短信,提高系統(tǒng)的響應(yīng)速度。這里以ActiveMQ為例

    2024年02月08日
    瀏覽(20)
  • 阿里云短信服務(wù)不對個人開放?如何在阿里云市場免費(fèi)購買短信服務(wù)?云市場購買到的短信服務(wù)如何使用?(以谷粒學(xué)院項(xiàng)目為例)

    阿里云短信服務(wù)不對個人開放?如何在阿里云市場免費(fèi)購買短信服務(wù)?云市場購買到的短信服務(wù)如何使用?(以谷粒學(xué)院項(xiàng)目為例)

    問題描述 : 在做谷粒學(xué)院項(xiàng)目時,需要使用阿里云的短信服務(wù)用于注冊驗(yàn)證,但是阿里云的短信服務(wù)目前不對個人開放了,看到彈幕說可以在云市場購買,于是果斷嘗試了一把,這過程中又遇到頭疼的依賴版本兼容問題,好在最終解決并測試成功了。在此把詳細(xì)的操作流程

    2024年02月12日
    瀏覽(23)
  • 最近項(xiàng)目上需要發(fā)送短信整理了一篇文章 SpringBoot整合阿里云發(fā)送短信

    最近項(xiàng)目上需要發(fā)送短信整理了一篇文章 SpringBoot整合阿里云發(fā)送短信

    阿里云短信服務(wù)網(wǎng)址:阿里云登錄 - 歡迎登錄阿里云,安全穩(wěn)定的云計(jì)算服務(wù)平臺 第一步:申請簽名(一般申請時長在1-2小時之間)特別注意:場景說明不要亂填以免申請不通過 ?第二步:申請短信模板(一般申請時長在1-2小時之間)特別注意:場景說明不要亂填以免申請不

    2024年02月06日
    瀏覽(14)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包