成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

短信驗(yàn)證

wfc_666 / 3409人閱讀

摘要:在本周的項(xiàng)目中用到了一個(gè)手機(jī)短信驗(yàn)證的功能,雖然代碼都是已經(jīng)寫好了的,自己只是拿來就用,但事后還是得學(xué)習(xí)一下思路的。

在本周的項(xiàng)目中用到了一個(gè)手機(jī)短信驗(yàn)證的功能,雖然代碼都是已經(jīng)寫好了的,自己只是拿來就用,但事后還是得學(xué)習(xí)一下思路的。

短信驗(yàn)證整體思路

主要流程如下

基礎(chǔ)功能還是比較簡單的畢竟發(fā)短信用到是現(xiàn)成的接口,本項(xiàng)目用到的短信驗(yàn)證接口的網(wǎng)站是這個(gè)

  /**
     * 批量發(fā)送短信
     *
     * @param phoneNumbers
     * @param message      短信內(nèi)容
     * @return 成功200 ,不成功400(短信驗(yàn)證錯(cuò)誤或未傳入發(fā)送手機(jī)號(hào))
     * @throws IOException 
     */
    @Override
        public Integer sentMessage(Set phoneNumbers, String message) throws IOException {
            HttpClient client = new HttpClient();
            PostMethod post = new PostMethod(sOpenUrl);
            // 在頭文件中設(shè)置轉(zhuǎn)碼
            post.addRequestHeader("Content-Type", ContentType);
            // 注冊(cè)的用戶名
            NameValuePair[] data = {new NameValuePair("action", "sendOnce"),
                    // 注冊(cè)成功后,登錄網(wǎng)站使用的密鑰
                    new NameValuePair("ac", account),
                    // 手機(jī)號(hào)碼
                    new NameValuePair("authkey", authkey),
                    new NameValuePair("cgid", cgid.toString()),
                    new NameValuePair("c", message),
                    new NameValuePair("m", String.join(",", phoneNumbers))}; // 設(shè)置短信內(nèi)容

            post.setRequestBody(data);

            client.executeMethod(post);
            post.releaseConnection();
            return post.getStatusCode();
       }
小難點(diǎn)

主要的難點(diǎn)我認(rèn)為主要就是:怎么保存已經(jīng)發(fā)送的驗(yàn)證碼并判斷是否失效。
在本項(xiàng)目中是直接通過一個(gè)服務(wù)中的hashMap把驗(yàn)證碼與手機(jī)號(hào)的信息直接存到內(nèi)存中,畢竟本項(xiàng)目同時(shí)注冊(cè)人數(shù)不可能太多,而幾個(gè)字符串內(nèi)存還是承受的住的。

        HashMap> hashMap = new HashMap<>();  // 緩存值
        String EXPIRE_DATE_KEY = "expireDate";  // 數(shù)據(jù)失效時(shí)間關(guān)鍵字(指在某個(gè)時(shí)間失效)
        String VALUE_KEY = "value";  // 存數(shù)據(jù)的KEY    
    
        // 存放緩存的方法
        static void put(String key, Object object, Integer expireTime) {
            HashMap hashMap = new HashMap<>();
            hashMap.put(MemoryCacheService.VALUE_KEY, object);
            hashMap.put(MemoryCacheService.EXPIRE_DATE_KEY, System.currentTimeMillis() + expireTime * 1000);
            MemoryCacheService.hashMap.put(key, hashMap);
        }

通過手機(jī)號(hào)查詢驗(yàn)證碼

    /**
     * 獲取緩存
     *
     * @param key
     * @return
     */
    static Object get(String key) {
        if (MemoryCacheService.shouldClearExpiredData()) {
            logger.info("定期清除過期緩存");
            MemoryCacheService.clearExpiredData();
        }

        HashMap cachedObject = MemoryCacheService.getCachedObjectByKey(key);
        if (cachedObject == null) {
            return null;    // 未獲取到緩存數(shù)據(jù),返回null
        }

        if (MemoryCacheService.isExpired(cachedObject)) {
            logger.info("緩存過期,清除緩存.返回null");
            MemoryCacheService.remove(key);
            return null;
        }

        return cachedObjec
總結(jié)

本以為這個(gè)功能的博客能寫不少,畢竟還是讓我感覺很新鮮的,但真的開始才發(fā)現(xiàn)沒啥重點(diǎn)可寫,限制ip請(qǐng)求次數(shù)的功能
還寫掉了,要是詳細(xì)寫怎么實(shí)現(xiàn)的感覺又沒必要,畢竟邏輯實(shí)際上還是很簡單的看看流程圖就能理解了,就這樣吧。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/74482.html

相關(guān)文章

  • 目前可以用的短信驗(yàn)證碼平臺(tái)哪個(gè)比較好?

    摘要:短信驗(yàn)證碼平臺(tái)短信驗(yàn)證碼平臺(tái)哪個(gè)比較好短信驗(yàn)證碼平臺(tái)哪個(gè)好短信驗(yàn)證碼 目前短信驗(yàn)證碼大家應(yīng)該都很熟悉了,尤其當(dāng)你在一些購物網(wǎng)站等注冊(cè)會(huì)員或者修改信息時(shí)都需要驗(yàn)證碼。而短信驗(yàn)證碼是商家為了降低重復(fù)注冊(cè)或者非法注冊(cè),就需要短信驗(yàn)證碼來幫忙用戶的真實(shí)性。那么,目前可以用的短信驗(yàn)證碼平臺(tái)哪個(gè)比較好呢?下面就讓摩杜云小杜來跟大家講解一下吧。企業(yè)要想知道目前可以用的短信驗(yàn)證...

    qianfeng 評(píng)論0 收藏0
  • 永久免費(fèi)的短信驗(yàn)證碼平臺(tái)是不存在的!

    摘要:短信驗(yàn)證碼的到達(dá)率是維護(hù)用戶的關(guān)鍵,那些號(hào)稱永久免費(fèi)的短信驗(yàn)證碼平臺(tái)其實(shí)是不可靠的,因?yàn)樗静粫?huì)保證到達(dá)率。摩杜云免費(fèi)短信驗(yàn)證碼平臺(tái)超過試用部分每條約分錢起,具體以行業(yè)領(lǐng)域和客服報(bào)價(jià)為準(zhǔn)。 短信驗(yàn)證碼平臺(tái)軟件一般都是免費(fèi)的,只要在摩杜云注冊(cè)個(gè)賬號(hào)就可以免費(fèi)使用,同時(shí)還可以享受20條短信左右的試用。但后續(xù)通過平臺(tái)向用戶發(fā)送短信驗(yàn)證碼是收費(fèi)的,畢竟短信服務(wù)商從運(yùn)營...

    bluesky 評(píng)論0 收藏0
  • 短信驗(yàn)證碼平臺(tái)有哪些比較好用?需從這3個(gè)方面來決定!

    摘要:現(xiàn)如今,要想分辨短信驗(yàn)證碼平臺(tái)哪些比較好用,需要從速度到達(dá)率穩(wěn)定性等幾個(gè)方面來決定。短信驗(yàn)證碼平臺(tái)是很講究時(shí)效性,所以速度快到達(dá)率高是很關(guān)鍵的。在選擇短信驗(yàn)證碼平臺(tái)的時(shí)候,一定要注意以上這些方面。 現(xiàn)如今,要想分辨短信驗(yàn)證碼平臺(tái)哪些比較好用,需要從速度、到達(dá)率、穩(wěn)定性等幾個(gè)方面來決定。短信驗(yàn)證碼平臺(tái)是很講究時(shí)效性,所以速度快、到達(dá)率高是很關(guān)鍵的。另外,在選擇短信...

    ckllj 評(píng)論0 收藏0
  • 手機(jī)app有了短信驗(yàn)證碼還有沒必要有圖片驗(yàn)證碼?

    摘要:以網(wǎng)易云易盾的驗(yàn)證碼產(chǎn)品為例行為驗(yàn)證碼具備運(yùn)用大數(shù)據(jù)分析和機(jī)器學(xué)習(xí)模型進(jìn)行優(yōu)化升級(jí)的特點(diǎn)。路徑可以理解為驗(yàn)證碼展示用戶行為分析機(jī)器人學(xué)習(xí)返回驗(yàn)證結(jié)果機(jī)器模型升級(jí)的循環(huán),保證了網(wǎng)易云易盾行為式驗(yàn)證碼的不斷迭代升級(jí)。 當(dāng)然有必要,這里我們來聊一個(gè)惡意短信驗(yàn)證的案例,通過這個(gè)案例我們就能更好理解短信驗(yàn)證碼和圖片驗(yàn)證碼這兩者的關(guān)系了。 討論防止惡意短信驗(yàn)證之前,我們先來看看什么是惡意短信驗(yàn)證及...

    leejan97 評(píng)論0 收藏0
  • Laravel SMS 短信發(fā)送包

    摘要:支持短信驗(yàn)證碼未驗(yàn)證時(shí),用戶再次請(qǐng)求驗(yàn)證碼,在有效分鐘內(nèi)驗(yàn)證碼保持一致。集成短信發(fā)送路由,支持和發(fā)送方式。有效期為分鐘,請(qǐng)盡快驗(yàn)證。 Laravel Sms Laravel 貼合實(shí)際需求同時(shí)滿足多種通道的短信發(fā)送組件 showImg(https://segmentfault.com/img/remote/1460000013101233);showImg(https://segment...

    Seay 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<