В этой статье описано решение.
You are supposed to send special optional param 'state' — any random hash you get back by Provider in User's callback: ?code=123&state=HASH. Before adding OAuth account you MUST verify session[state] is equal params[state].