在使用oauth(Linkedin)之前,我们正在使用Rails会话来保存用户意图。这里的想法是在Linkedin回调后显示不同的页面。问题是我们有时会在Linkedin重定向回调后看到会话丢失,这会导致我们这边的错误。
这是Rails会话设置:
Rails.application.config.session_store
:cookie_store,
key: "_my_session_#{Rails.env}",
:secure => !ENV['NO_SSL'] && (Rails.env.production? || Rails.env.staging?),
:expire_after => 100.years
这是我们在重定向到Linkedin身份验证页面之前设置cookie的方式:
def social_login
session[:intention] = 'login'
redirect_to_provider(params[:provider], request.query_parameters)
end
重定向后的会话内容:
{
_csrf_token: nYlKmD/KAbj3hmWQ+cIethchxlHTOzUMjG/5y/fldLE=
oauth: {"linkedin": {"callback_confirmed": true}}
session_id: 4165617feee7f9a51148318d300291fc
}
以防万一:Rails 5.2.1,omiauth 1.8.1,Docker