redis實現登錄註冊--短信驗證碼存入redis實現短信登錄

現在很多應用都用到短信驗證。這篇博客主要記錄下短信驗證碼存入redis,實現用戶登錄,算是個人筆記!

短信驗證 就不多說了,我用的阿里的短信,官網上有短信驗證,很詳細,模板可以直接下載,簡單修改就可以使用了!

首先是在服務器上安裝redis,服務器設置redis端口號,然後使用圖形化連接服務器上的redis(你也可以直接操作服務器)

這裏連接肯可能出現連接不上、連接錯誤等問題,百度一下 很多博客都會說到,就是防火牆設置和修改配置文件redis-conf

你也可以試試以下操作(以下摘自其他博客)

1、先檢查防火牆的狀態

通過systemctl status firewalld查看firewalld狀態,發現當前是dead狀態,即防火牆未開啓

通過systemctl start firewalld開啓防火牆,沒有任何提示即開啓成功。

【再次通過systemctl status firewalld查看firewalld狀態,顯示running即已開啓了。

如果要關閉防火牆設置,可能通過systemctl stop firewalld這條指令來關閉該功能。】

2、開放6379端口

命令:firewall-cmd --permanent --add-port=6379/tcp

執行可以成功,返回success

用該命令查詢firewall-cmd --permanent --query-port=6379/tcp

3、開放端口的配置要添加在:vi  /etc/sysconfig/iptables-config 文末就可以了;

添加的內容:-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 6379 -j ACCEPT

4、ip的配置問題

5、關閉防火牆

如何連接成功,那恭喜你啦,如果還是不行的話,度娘 嘿嘿(總會有答案的)

接下來就是Java操作redis了,Redis開發商提供了一個Java版本支持 Jedis類,它可以獲得java和redis的連接

1、導入依賴 --如果你是maven項目

 在依賴中加入以下依賴(這裏是2.8.0版本)

<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.8.0</version>
</dependency>

2、如果不是maven項目,則就要去下載jar包了,我這裏附上下載鏈接吧

http://central.maven.org/maven2/redis/clients/jedis/2.8.0/

這裏jedis還需要一個依賴包,commons-pool2,不然jedis裏面的config不能用的哦(坑已踩過)

下面Jedis代碼

properties文件:

static JedisPool jedisPool ;
	static Jedis jedis=  null;
	static {
		//轉換爲流的方式
		InputStream inputStream = JedisPoolUtil.class.getClassLoader().getResourceAsStream("redisDB.properties");
		Properties properties = new Properties();
		try {
			properties.load(inputStream);//加載流文件
		} catch (IOException e) {
			e.printStackTrace();
			System.out.println("讀取配置文件失敗");
		}
		String host = properties.getProperty("redis.host");
		Integer port = Integer.parseInt(properties.getProperty("redis.port"));
		Integer MaxTotal = Integer.parseInt(properties.getProperty("redis.MaxTotal"));
		Integer MaxIdle = Integer.parseInt(properties.getProperty("redis.MaxIdle"));
		Integer MinIdle = Integer.parseInt(properties.getProperty("redis.MinIdle"));

		JedisPoolConfig jedisPoolConfig = new JedisPoolConfig();
		jedisPoolConfig.setMaxTotal(10);
		jedisPoolConfig.setMaxIdle(MaxIdle);
		jedisPoolConfig.setMinIdle(MinIdle);
		jedisPool = new JedisPool(jedisPoolConfig,host,port);
	}

	public static Jedis  getJedis(){
		jedis = jedisPool.getResource();
		jedis.auth("root");
		return jedis;
	}

	public static void release(Jedis jedis){
		if (jedis != null){
			jedis.close();
		}
	}

發送驗證碼,將驗證碼存入redis,並設置有效時間(這裏設置爲五分鐘)

smsResponse = SMSCodeUtils.sendSms(phoneNum, smsCode);
			json2.setCode(200);
			json2.setMsg("驗證碼已發送");
//			登錄的驗證碼存入redis
			jedis.set(phoneNum+"login", smsCode);
//			設置key的有效期五分鐘
//		    NX是不存在時才set, XX是存在時才set, EX是秒,PX是毫秒
			jedis.set(phoneNum+"login",smsCode,"XX","EX",300);

上面兩個set可以合爲一條,XX改爲NX。就可以了,親測可行!

第一次搞,簡單的配置一下,歡迎大佬留言

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章