3

これまでは、クライアント側認証を使用してきました。サーバー側のeveryauthをセットアップしたところ、うまく機能してFB.getLoginStatusいますが、ページが読み込まれたときに(クライアント側で行ったこと)のようなことをするにはどうすればよいですか?

ユーザーがすでにログインしている場合、再度プロセスを実行したくありません。

説明してくれてありがとう!

4

3 に答える 3

3

ドキュメントから

everyauth は、ServerRequest インスタンス req の便利なメソッドも提供します。req にアクセスできる任意のスコープから、次の便利な getter とメソッドを取得します。

req.loggedIn- リクエストがログインしているユーザーによるものかどうかを通知する Boolean getter

req.user- セッションに関連付けられたユーザー ドキュメント

req.logout()- 認証データのセッションをクリアします

エクスプレス ビュー内:

Express を使用している場合、everyauth にはいくつかの便利な動的ヘルパーが付属しています。それらを有効にするには:

var express = require('express')
, everyauth = require('everyauth') 
, app = express.createServer();
everyauth.helpExpress(app); 

次に、ビュー内から、ヘルパー everyauth にアタッチされた次のヘルパー メソッドにアクセスできます。

everyauth.loggedIn
于 2012-01-27T07:11:44.083 に答える
0

Jade テンプレートを使用している場合、home.jade などの .jade ファイル内のコードに従って、ユーザーのログイン ステータスを確認できます。

if (!everyauth.loggedIn) // <-----
    a(href="/your_url_here/") log in with facebook
else
    p Welcome <username>
于 2013-05-08T23:28:59.260 に答える
0

node.js で次のようにします。

var userlogin = function () {
       var req = this.request
          ,res = this.response
          ,login = req.body
          ,username = login.username
          ,password = login.password;

      if(username === 'tester' && password === '12345'){
         req.session.user_id = xxxxxx;
         res.redirect('/');
      }else{
        res.redirect('/login');
      }

    }
    var checkAuth = function(fn_auth, fn_unauth){
      var req = this.request
          ,res = this.response
          ,unauthCallback;

      if(req.session.user_id){
        fn_auth(); //execute fn_auth if user is logged in. callback can be set to redirect to root path '/'
      }else{
          fn_unauth(); //execute fn_unauth calback which bring user to login path '/login'
        } 
      }
    }

基本的に、ユーザーがすでにログインしているときにリダイレクトするだけです。

于 2012-01-27T05:35:50.010 に答える