現在Ruby on RailsとApartmentを使用してマルチテナント環境を構築しています。Apartmentの公式ドキュメントにあるようなサブドメイン毎の切り替えではなく、ユーザ毎の切り替えを実現したいと考えています。
以下に記載するコードでユーザ毎の切り替えが一見できていますが、果たしてこの実装がパフォーマンスおよびセキュリティ的に問題ない方法であるかがわからずにおります。

なお、状況としては、以下のようになります。
・バックエンド:Ruby on Rails
・フロントエンド:Nuxt.js
・ユーザ認証にはKnockを使用しています。

application_controller.rb

class ApplicationController < ActionController::Base
  include Knock::Authenticable
  include ActionController::MimeResponds
  skip_before_action :verify_authenticity_token
  before_action :switch_tenant

  def switch_tenant
    if current_user != nil
      Apartment::Tenant.switch!(current_user.tenantname)
    end
  end
end

User model's migration file

class CreateUsers < ActiveRecord::Migration[5.2]
  def change
    create_table :users do |t|
      t.string :email
      t.string :password_digest
      t.string :tenantname

      t.timestamps
    end
    add_index :users, :email, unique: true
  end
end

抽象的な質問となりますが、ユーザ毎の切り替え方法、もしくはRuby on Rails + Nuxt.js + Apartment + Knock のような構成でのマルチテナント環境の構築について何か良い方法があれば何でもご意見頂きたいです。
元々、サブドメインでの切り替えで実装しようとしましたが、フロントエンドとバックエンドが別れていてかつKnockをユーザ認証に使用している場合の方法がわからず、ユーザ毎のテナント切り替えに行き着いた経緯があります。
よろしくお願いします。