이번 Devise OTP 2.0 릴리스에서는 다음과 같은 주요 개선 사항과 변경 사항이 적용되었습니다.
새로운 기능 및 개선 사항
-
Lockable 전략 지원:
devise-otp가lockable전략을 지원하여, 실패한 로그인 시도 카운터를lockable과 공유하게 됩니다. 이는 로그인 실패를 통합적으로 관리하는 방식으로, 보안 강화에 기여합니다. -
로케일 파일 개선: 다국어 지원을 위한 로케일 파일이 개선되어, 번역 및 지역화 작업이 더욱 용이해졌습니다.
-
Hotwire 및 Remember me 지원 강화: Hotwire 및 Remember me 기능과의 호환성 및 안정성이 향상되었습니다.
-
코드 리팩토링 및 품질 향상: ERB 뷰 정리, Rubocop 및 린팅 도구 도입을 통한 코드 품질 향상 작업이 이루어졌습니다.
주요 Breaking Changes
-
브라우저 지속성 리팩토링: Laney Stroup의 기여로 브라우저 지속성(browser persistence) 기능이 전용 컨트롤러로 완전히 리팩토링되었습니다.
-
라우팅 및 액션 변경: 브라우저 지속성 라우팅이 표준화되었으며, 관련 액션들이
link_to대신 HTMLbutton_to를 사용하도록 변경되었습니다. 이는 사용자 인터페이스 및 동작 방식에 영향을 미칩니다.
업그레이드 절차
-
컨트롤러 및 뷰 재생성: 사용자 정의 컨트롤러나 뷰를 사용하는 경우, 다음 명령어를 통해 재생성해야 합니다.
bash rails g devise_otp:controllers rails g devise_otp:views이때, 브라우저 지속성 제어 요소들이button_to를 사용하도록 변경되었음을 유의해야 합니다. -
로케일 파일 업데이트: 로케일 파일에서
*_persistence관련 키들을devise.otp.otp_tokens에서devise.otp.otp_persistence로 이동해야 합니다.