# File lib/omniauth/strategies/last_fm.rb, line 46
      def callback_phase
        token = request.params['token']
        params = { :api_key => api_key, :method => 'auth.getSession', :format => 'json' }
        params[:token] = token
        params[:api_sig] = signature(token)
      
        response = RestClient.get('http://ws.audioscrobbler.com/2.0/', { :params => params })
        @auth = MultiJson.decode(response.to_s)
        raise CallbackError.new(@auth['error'],@auth['message']) if @auth['error']
        
        user_params = { :method => "user.getInfo", :user => @auth['session']['name'], :api_key => api_key, :format => "json" }
        user_response = RestClient.get('http://ws.audioscrobbler.com/2.0/', { :params => user_params })
        @user_auth = MultiJson.decode(user_response.to_s)
        raise CallbackError.new(@user_auth['error'],@user_auth['message']) if @user_auth['error']
      
        super
      rescue CallbackError => e
        fail!(:invalid_response, e)
      end