我正在使用https://github.com/basecamp/google_sign_in将Google身份验证添加到我的大型Rails应用中。
gem中的身份验证流是:
问题在于,回调控制器中的flash和session都为空。
什么会导致Rails清空Flash和Google的回叫会话?
这是由于将同一网站政策设置为严格。将其设置为宽松允许GET重定向提供Flash和其他Cookie。
严格设置是rails中的默认设置,但已更改为宽松设置,因为GET重定向实际上已被严格策略破坏。
实施例:
不会从其他域重定向时设置Cookie:
Rails.application.config.session_store :cookie_store, key: 'your-session', same_site: :strict
将在GET重定向上设置Cookie:
Rails.application.config.session_store :cookie_store, key: 'your-session', same_site: :lax