Фигню какую-то мы тут наделали. Давай выделим код, который предназначен для omniauth в отдельный контроллер:

OmniauthSessionController

с одним методом create

соответсвенно в роутах нужно прописано его вместо sessions в нужных местах