2012-01-07 13 views
1

私はTwitterで認証するためにノードモジュールeveryauthを使用しています。現時点では、ユーザーは/auth/twitter/に行き、リダイレクトパスで認証する必要があります。同じページでTwitterとの認証

問題は、リダイレクトパスがページをリロードして、私が作成した「1ページのアプリケーション」構造を破壊することです。 Twitterとの認証を「1ページ」境界内に維持することは可能ですか?

答えて

1

できません。新しいページを開く必要があります(ただし、ポップアップを開いて、そのポップアップを閉じるページに戻ることができます)。

+0

ログアウトはどうですか?現時点では、 '/ logout'はリフレッシュを引き起こします。 – Randomblue

+0

ログアウトする方が簡単ですが、 '/ sign_out'ルートを作成してセッションを削除することもできます:' delete sess.auth; '(JSONレスポンスを送信し、Ajaxを使って同じページに保持することもできます)。 – alessioalex

0

これがあなたが探しているものかどうかわからない、私はまた、単一のページのアプリケーションを構築しています。リダイレクトは避けられませんが、ユーザーはTwitterに行き、認証して同じページに戻りますが、ユーザーの状態に応じて異なるデータを読み込むので、ユーザーは一般的なコンテンツまたは保存されたコンテンツを取得します。私のシナリオで

// in server.js 
app.get('/', routes.index); 

// in routes.js, required in server.js 
exports.index = function(req, res){ 
    if(req.loggedIn){ 
    getData(function(data){ 
     res.render('home', { data:, data }) 
    }); 
    } else { 
    res.render('home', { data: false }) 
    } 
}; 

のgetData()は、その後、私たちのAPIからコンテンツをプリロードし、JSONなどのテンプレートにこれを渡し、そのアクセスレベルを確認するために、ユーザーにいくつかのチェックを行います。その後、アプリケーションがレンダリングすると、使用可能なJSONが検索されます。

関連する問題