vercel의 미리 보기 URL에서session을 저장할 수 없을 것 같습니다

현재 참여 중인 프로젝트는 이전 Next입니다.js, 백엔드 rails의 카드 창고 구성.
따라서 rails 측에서 생성한session이 브라우저의 쿠키에 저장할 수 없는 이벤트가 발생하여 해결에 시간이 걸렸기 때문에 비망록입니다.
스케줄러:한달정도 시간이 비워져서해봤는데기억에 남는것밖에 없어서조금전후가 있을것 같아요.🙇‍♂️)
인증 정보는 브라우저의session 관리를 전제로 합니다.

문제의 발단


사용자가 새로 로그인할 때session을 생성하여 브라우저의 쿠키에 저장하고 사용자 정보를 처리하려고 합니다.
그래서 rails의 initializers.rb와 initializersstore.rb에 허가역 세션 이름 등이 설정되어 있습니다.
그런 다음 vercel의 미리 보기 URL에서 작업을 확인하는 동안 이벤트가 발생했습니다.
...저장하지 않습니다.

시도적 해결 방법


먼저 세션store.rb의 설정을 재고하기로 했습니다.
session_store.rb
if Rails.env === 'production'
    Rails.application.config.session_store :cookie_store, key: '_セッション名', domain: 'ドメイン名'
else
    Rails.application.config.session_store :cookie_store, key: '_セッション名'
end
이 제품의 도메인 이름에는 하위 영역에 설정할 수 있는 글이 많기 때문에vecel의 영역([랜덤 문자열].vercel.app)을 설정했습니다.
https://moto.hatenadiary.com/entry/subdomain-keep-session
session_store.rb
if Rails.env === 'production'
    Rails.application.config.session_store :cookie_store, key: '_セッション名', domain: '.vercel.app'
else
    Rails.application.config.session_store :cookie_store, key: '_セッション名'
end
및 변경합니다.
하지만 움직이지 않는다.
검증 툴의 NetWork 레이블을 확인합니다.
반응도 없고 쿠키도 없고왜 그랬을까
그리고 SameSite 속성이 None이 아니라는 것을 판명합니다.
이 논이면 되겠지?
rails는gem에서 제공하기 때문에 사용했습니다
Gemfile
gem 'rails_same_site_cookie'
$ bundle install
다시 확인해보니 SameSite=None, 반응 중에도 과자!
왔어!그렇게 말하고 싶었는데 검증 도구인 Application의 쿠키를 보고
저장되지 않음...
이거 대단해..

해결하다


그리고 마침내 격투는 다음과 같은 보도에 이르렀다.
https://github.com/vercel/vercel/discussions/5290
결론적으로vercel의 미리보기 영역은 안 될 것 같고, 제작 영역은 그게 더 빠를 것 같아~.
제품의 하위 도메인, 세션 작성store.rb
session_store.rb
if Rails.env === 'production'
    Rails.application.config.session_store :cookie_store, key: '_セッション名', domain: '.本番のドメイン名'
else
    Rails.application.config.session_store :cookie_store, key: '_セッション名'
end
로 수정합니다.
순조롭게 진행되었다.
vercel 미리보기에서 순조롭게 진행되지 못한 것은vecel의 규격?그렇습니까?
(개인적인 예측은vercel이 발행한 것이기 때문에vercel소유권이 탄력될까요?)

끝맺다


이번 일을 통해 무대 환경의 구축을 실감했다.
학습 단계에서 절대 눈치채지 못한 것은 실제 업무다.
자신이 알고 있는 것이 전체의 1%를 차지합니까?이런 느낌.

좋은 웹페이지 즐겨찾기