はじめに
ユーザーがログインするとき、セキュリティ上の理由から、ここではGoogleのkaptchaが軽量で独立しており、Springベースのアプリケーション開発を可能にします。極めてシンプル。 springboot についてはインターネット上にたくさんの紹介があるので、ここでは詳しく説明しません。 本題に戻り、ログイン時のSpringbootと組み合わせた認証コードの使い方について説明しますkaptchaに必要なjarパッケージの紹介、ここではmavenを使用します
<dependency> <groupId>com.github.penggle</groupId> <artifactId>kaptcha</artifactId> <version>2.3.2</version> <exclusions> <exclusion> <artifactId>javax.servlet-api</artifactId> <groupId>javax.servlet</groupId> </exclusion> </exclusions> </dependency>
付属のサーブレットを削除しますパッケージバッグ付き。私の個人的な理解では、springboot は javaconfig とアノテーションで構築された軽量のマイクロアーキテクチャです。
以下はkapchaのjavaconfigです
@Configuration public class CaptchaConfig { @Bean(name="captchaProducer") public DefaultKaptcha getKaptchaBean(){ DefaultKaptcha defaultKaptcha=new DefaultKaptcha(); Properties properties=new Properties(); properties.setProperty("kaptcha.border", "yes"); properties.setProperty("kaptcha.border.color", "105,179,90"); properties.setProperty("kaptcha.textproducer.font.color", "blue"); properties.setProperty("kaptcha.image.width", "125"); properties.setProperty("kaptcha.image.height", "45"); properties.setProperty("kaptcha.session.key", "code"); properties.setProperty("kaptcha.textproducer.char.length", "4"); properties.setProperty("kaptcha.textproducer.font.names", "宋体,楷体,微软雅黑"); Config config=new Config(properties); defaultKaptcha.setConfig(config); return defaultKaptcha; } }
ここでのkatchaのjavaconfigはspringmvcのBean設定と同等です。参考までに上記のjavaconfigのspringmvcのBean例を示します
<bean id="captchaProducer" class="com.google.code.kaptcha.impl.DefaultKaptcha"> <property name="config"> <bean class="com.google.code.kaptcha.util.Config"> <constructor-arg> <props> <prop key="kaptcha.border">yes</prop> <prop key="kaptcha.border.color">105,179,90</prop> <prop key="kaptcha.textproducer.font.color">blue</prop> <prop key="kaptcha.image.width">125</prop> <prop key="kaptcha.image.height">45</prop> <prop key="kaptcha.textproducer.font.size">45</prop> <prop key="kaptcha.session.key">code</prop> <prop key="kaptcha.textproducer.char.length">4</prop> <prop key="kaptcha.textproducer.font.names">宋体,楷体,微软雅黑</prop> </props> </constructor-arg> </bean> </property> </bean>
構築メソッド
@RequestMapping(value = "/captcha-image") public ModelAndView getKaptchaImage(HttpServletRequest request, HttpServletResponse response) throws Exception { response.setDateHeader("Expires", 0); response.setHeader("Cache-Control", "no-store, no-cache, must-revalidate"); response.addHeader("Cache-Control", "post-check=0, pre-check=0"); response.setHeader("Pragma", "no-cache"); response.setContentType("image/jpeg"); String capText = captchaProducer.createText(); System.out.println("capText: " + capText); try { String uuid=UUIDUtils.getUUID32().trim().toString(); redisTemplate.opsForValue().set(uuid, capText,60*5,TimeUnit.SECONDS); Cookie cookie = new Cookie("captchaCode",uuid); response.addCookie(cookie); } catch (Exception e) { e.printStackTrace(); } BufferedImage bi = captchaProducer.createImage(capText); ServletOutputStream out = response.getOutputStream(); ImageIO.write(bi, "jpg", out); try { out.flush(); } finally { out.close(); } return null; }
上記のコードのように、ユーザーがログインするときに、cooike内の認証コードとキャプチャコードを使用して一意性検証を実現することを最初は入れようと考えました。考えてみると、これは非科学的だと感じます。たとえば、セッションにキャプチャコードが配置されている場合、後で別のユーザーが再度ログインすると、前のユーザーが。この時点では、一連の問題が発生します。ここでは、ユーザーの同時ログイン検証を処理するために Cookie と Redis が使用されます。
このページは次のように比較的簡単に使用できます:
<p style="float: left;"> <i><img src="/static/imghwm/default1.png" data-src="code/captcha-image" class="lazy" style="max-width:90%" id="codeImg" alt="点击更换" title="点击更换" /></i> </p>
変更したい場合は、クリックイベントを追加してから、Redis 内の以前の対応する
キャッシュデータ
以上がSpringbootと組み合わせたログイン時の認証コードの使用例を紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SublimeText3 中国語版
中国語版、とても使いやすい

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)
