meteor-router は非推奨になりました。代わりに、以下を使用してログイン状態に基づいてリダイレクトできるiron-routerを使用します。
Router.configure({layoutTemplate: 'mainLayout'});
Router.map(function() {
this.route('splash', {path: '/'});
this.route('home');
});
var mustBeSignedIn = function(pause) {
if (!(Meteor.user() || Meteor.loggingIn())) {
Router.go('splash');
pause();
}
};
var goToDashboard = function(pause) {
if (Meteor.user()) {
Router.go('home');
pause();
}
};
Router.onBeforeAction(mustBeSignedIn, {except: ['splash']});
Router.onBeforeAction(goToDashboard, {only: ['splash']});
例: Meteor.js - レンダリング前にログイン状態を確認する
- また -
accounts-entryパッケージを使用します。彼らのサイトから:
ルートにサインインしているユーザーを確保する
AccountsEntry.signInRequired(this) を使用して、サインインしているユーザーにルートを要求します。これを before フック関数に貼り付けると、リダイレクトされてサインインし、レンダリングが停止します。Accounts Entry は、ユーザーが行こうとしていた場所も追跡し、サインイン後にユーザーを元に戻します。