2016-05-29 3 views
0

流星のユーザーがログアウトしたとき、私はwww.foo.com/usernameAにアクセスすることができ、usernameAページが表示されますすべてのプロフィール情報が表示されます。私がwww.foo.com/usernameBでこれを行うと、同じことが起こります。これらはすべて素晴らしいです。流星勘定にユーザーがログインし、ユーザー名と同じアドレスを入力しようとすると、現在ログインしているユーザープロファイルページに引き続きルーティングされます。現在ログインしているユーザーは、Router.current()。params.usernameをハイジャックして、常に現在のパラメータにします。ここで 流星ユーザーがIronPortにログインしたときにRouter.current().params.usernameを別のプロファイルにルーティングしない

は私のコードの基礎である:

routes.js

Router.route('/:username', { 
template: 'userPubProfile', 
onBeforeAction: function(){ 
var profileUserExists = Meteor.users.find({"profile.user-url" : 
Router.current().params.username}).count(); 

    if (profileUserExists == 0) { 
    this.render('404'); 
    } 
    else { 
    this.next(); 
    } 
} 
}); 

userPubProfile.js

Template.userPubProfile.helpers({ 
    'userFirstName' : function(){ 
    var getUser = Meteor.users.findOne({"profile.user-url" : 
Router.current().params.username}); 
return getUser.profile['first-name']; 
} 
}); 

私の質問: 私は、ルーティング作業同じを作るにはどうすればよいです/:usernameパラメータを使用してルータに接続しようとすると、ユーザはログインまたはログアウトされますか?

+0

戻って何が得られているのかを観察する前に、あなたのヘルパーで 'console.log'を試してみてください。 –

+0

私はconsole.logをやった。問題は....流星ユーザーがログインしたURLに自動的にログインすると、ログインしているユーザー名にリダイレクトされます。例:ログインしていて、ユーザープロファイルがwww.website.com/の場合johnと入力してから、www.website.com/bobと入力します。ルータは自動的にBobをwww.website.com/johnに誘導します...ログイン時にリダイレクトされるのはなぜですか? – jremi

答えて

1

皆様に感謝します。私はこの問題を解決することができました。これは私の/:usernameルートを構築してユーザ名ルータパラメータを収集する前に挿入していた古い行によるものです。私は私のAccounts.onLoginの内側に、私は単純にこれらの行を削除する必要がありましたし、今ではすべてが正しい()私がやっていた電話を持っていた...

var getUserUrl = Meteor.user().profile['user-url']; 
    Router.go('/' + getUserUrl); 

ことを発見してしまいました!ありがとう!

関連する問題