2016-07-27 3 views
0

私はウェブサイトとの認証が初めてです。さまざまな種類のユーザー認証(セッションとトークンの認証など)について多くの読書を行っています。しかし、私の必要以上に多くのことが考えられますが、私の目的に適したものは何か分かりません。ウェブサイトの一時的な認証の作成方法

私の考えは、最初の使用後に期限切れになる一時的なユーザーアカウントとパスワードを生成することです。私はこれを私のウェブサイトに統合したいので、制限されたページを見る機会があります。その後、(新しい資格情報が与えられていない限り)それらの部分に再びアクセスすることはできません。

右のステップのどの方向にも感謝します。

アップデート:私はあなたが最も(すべてではない)Webサーバライブラリによるノードのバックエンドを、使用している場合

+0

を? – Nitin

+0

@Nitin JavaScript(ノード)を使用しています – Jain

答えて

1

セッションベースの認証が実際に信じられないほど軽量である私のサーバーサイド言語としてのJavascript(ノード)を使用しています彼らがあなたのルート機能を打つ前にリクエストを修正する "ミドルウェア"をサポートしています。 Express対応のミドルウェアclient-sessionsはこれで素晴らしいですし、以前は大きな成功を収めていたプロジェクトでこれを使用しました。ユーザーがサイトに行った最初のリクエストでCookieを追加し、特定の時点でログインした場合は、そのセッションを認証済みとしてフラグを立て、セッション情報やそれらに関連するその他のデータを保存することができます。あなたは、両方のログイン&ログアウト、希望がlogin & logoutルートにHTTPS経由のPOSTを使用することでする最も簡単な方法をしたいと仮定すると、

。ログインルートの解決策の中では、あなたが作業しているデータベースの中で単に「削除のマークを付ける」ことができます。

の例では、次のようになります。使用しているサーバーサイド言語

var app = express(); 

function authenticate(user, pw){ 
    //do your application specific login verification here 
} 

function deleteAccount(user){ 
    //do your application specific user removal here 
} 

app.use(require("express-session")({ 
    secret : "YOUR-SECRET-KEY-HERE" 
    cookieName : "Session" 
    //any other desired config options go here 
}) 

app.post("/login", function(req, res){ 
    var user = req.body.user; 
    var pw = req.body.pw; 
    req.Session.isAuthenticated = authenticate(user, pw) 
    if(req.Session.isAuthenticated){ 
     markForDeletion(user, pw); 
    } 
    res.write("logged in as: " + user); 
    res.end(); 
}); 
app.post("/logout", function(req, res){ 
    deleteAccount(req.Session.username); 
    req.Session.username = ""; 
    req.Session.isAuthenticated = false; 
    res.write("logged out!"); 
    res.end(); 
}); 
+0

ありがとう!これは素晴らしいスタートです! – Jain

関連する問題