InfoGrab DocsInfoGrab Docs

TokenAuthenticatable concern 사용하기

ActiveRecord 모델에 토큰 기반 인증 기능을 제공하는 TokenAuthenticatable 모듈의 사용법과 저장 전략, 옵션을 설명합니다.

TokenAuthenticatable 모듈은 ActiveRecord 모델에 토큰 기반 인증 기능을 제공하는 concern입니다. 이 모듈을 사용하면 모델에 인증 토큰을 정의할 수 있습니다. 개요 # 이 모듈은 모델에 토큰 기반 인증을 추가하는 유연한 방법을 제공합니다. 세 가지 저장 전략을 지원합니다: digest : 토큰의 SHA256 다이제스트를 데이터베이스에 저장합니다. encrypted : AES 256 GCM 알고리즘을 사용하여 토큰을 암호화한 후 데이터베이스에 저장합니다. insecure : 토큰을 암호화하거나 다이제스트하지 않고 그대로 데이터베이스에 저장합니다. 이 전략의 사용을 강력히 권장하지 않습니다. 각 저장 전략에 대한 여러 옵션도 지원합니다. 사용법 # 모델에서 token_field 속성을 정의하려면 모듈을 include하고 add_authentication_token_field 를 호출하세요: class User < ApplicationRecord include TokenAuthenticatable add_authentication_token_field :token_field, encrypted: :required, routable_token : { ... } end 저장 전략 # encrypted: :required : 암호화된 토큰을 token_field_encrypted 칼럼에 저장합니다. token_field_encrypted 칼럼이 존재해야 합니다. 이 전략의 사용을 강력히 권장합니다. encrypted: :migrating : 암호화된 토큰과 평문 토큰을 각각 token_field_encrypted 와 token_field 에 저장합니다. 항상 평문 토큰을 읽습니다. 속성을 암호화로 전환하는 과정에서 사용해야 합니다. token_field 와 token_field_encrypted 칼럼 모두 존재해야 합니다. encrypted: :optional : 암호화된 토큰을 token_field_encrypted 칼럼에 저장합니다. token_field_encrypted 에서 먼저 읽고, 없으면 token_field 로 폴백합니다. 암호화된 토큰을 쓸 때 token_field 칼럼의 평문 토큰을 null로 만듭니다. token_field 와 token_field_encrypted 칼럼 모두 존재해야 합니다. digest: true : 토큰의 다이제스트를 데이터베이스에 저장합니다. token_field_digest 칼럼이 존재해야 합니다. insecure: true : 토큰을 암호화하거나 다이제스트하지 않고 그대로 데이터베이스에 저장합니다. 이 전략의 사용을 강력히 권장하지 않습니다. 기본적으로 저장 전략을 선택하지 않으면 토큰의 SHA256 다이제스트가 데이터베이스에 저장됩니다. token_field_encrypted 칼럼은 항상 인덱싱되어야 합니다. 토큰의 고유성 검사 및 조회에 사용되기 때문입니다. 라우터블 토큰 # routable_token 옵션을 사용하면 라우팅 정보를 토큰에 직접 인코딩할 수 있