問題描述:前端通過發送驗證碼給后端,后端接口無法接收到cookie中的session。為什么無法接收到session呢,因為不同域問題。
場景:前端react,后台java。我們的跨域問題已經解決了,就是接口可以正常訪問,前端沒有通過設置代理proxy來處理,是通過后台設置允許跨域來處理的。
解決辦法:
直接設置代理,通過代理轉發保持同域!!!才能把session設置到cookies里面!!!!!
以下是解讀知識點:
后端通常稱為session,是tomacat自帶的驗證方式,前端叫cookies的存儲存這個cookies,有時效性,通常是后台設置(前端也可以設置,一般不)。也就是說業務上,如果使用cookies(session)登錄、注銷的話,一般就都是后台去控制了。只要保證前后端不跨域就可以。本地用代理配置,線上用nginx。
首先說下正常的大概流程:
1、前端通過img標簽填入后台給的一個驗證碼圖片地址,(如果cookies沒有session這個字段)請求這個圖片地址時候,圖片接口會通過響應頭response header里的set-cookie在cookie里面設置session字段的值。
圖片接口里面的響應頭攜帶session:
進而設置cookies,把值存到里面:
2、點登錄請求登錄接口時候,或者請求其他接口時候,會自動把這個cookise里面的session帶到請求頭里面的,前端不需要做什么操作。