ルート権限
ガイド
固定ルート(権限不要でアクセス可能なルート)
静的ルートモードでは、ルートの権限は meta.constant
で制御されます。constant
が true
のルートはログインなしでアクセスできます。
一方、動的ルートモードでは、ログインなしでアクセス可能なルートは fetchGetConstantRoutes
API で返す必要があります。つまり、fetchGetUserRoutes
で constant
を true に設定しても無効であり、ログインが必要になります。
権限ルート
静的ルートモードでは、デフォルトで全てのルートにログインが必要です。特定の権限を設定する場合は、meta.roles
フィールドを追加できます。このフィールドの型は string[]
で、UserInfo
に設定されます。指定されたロールと一致する場合のみアクセスが許可され、それ以外は許可されません。マッチングは前置ルートガードの段階で行われます。
動的ルートモードでは、引き続き meta.roles
を使用できますが、通常はバックエンドがロールに基づいてルートテーブルを制御し、権限のないルートを返さない方法が一般的です。
動的ルート
ルートの取得元を変更できます。静的ルートのルートテーブルは ./src/router/elegant/routes.ts
にあります。動的ルートのルートテーブルは fetchGetConstantRoutes
および fetchGetUserRoutes
API から取得されます。
注意
接口返回的路由表的类型必须与前端静态的路由表类型一致,在尝试修改前建议先熟悉本项目的特色路由插件与路由表结构
有効化/無効化
env
ファイル内の VITE_AUTH_ROUTE_MODE
変数を設定することで、動的ルートモードを有効化/無効化できます。
コードの場所
.env
# 認証ルートモード: static | dynamic
VITE_AUTH_ROUTE_MODE=dynamic