カクカクしかじか

技術的なアレコレ

Nuxt.jsのmiddlewareでredirect処理をする際はreturnを忘れずに

結論

未認証時にログインページに飛ばしたい時など、
redirectする際はreturnしないと後続処理に進んでしまうので注意しましょうという話。

Railsでも以下のようにreturnとredirect処理はセットだったので、よくよく考えればそう...(うっかりしがち)

def show
  @user = User.find params[:id]
  return redirect_to :root if @user.nil?
end

というわけでこんな感じでやる。
(Next.jsでも他のフレームワークでも変わらない)

const authorized: Middleware = ({ store, redirect }) => {
  // 認証状態をチェックする
  const isAuthenticated = store.state.isAuthenticated;

  if (!isAuthenticated) {
    return redirect('/login');
  }
};