1

このチュートリアルで説明されているように、OWIN と lock.js で Auth0 を使用しています。唯一の違いは、MVC の代わりに Nancy を使用していることですが、違いはありません。

ログインは正常に機能しています。ここで、ユーザーが最初に要求したページ、つまりログイン フォームにリダイレクトされたときに入力した URL にユーザーをリダイレクトできるようにしたいと考えています。

Auth0 のチュートリアルやドキュメントに情報が見つかりません。

4

3 に答える 3

0

一般的な方法は、元の URL をstateパラメーターに保存することです。これは、プロトコル (OpenID Connect) によって、すべてのトランザクションで保持されることが保証されます。

nodejs/passport では、次のようにします。

//Middleware for routes that require login:
var requiresLogin = function(req, res, next) {
        if (!req.isAuthenticated()) {
            var orignalUrl = encodeURIComponent(new Buffer(req.url).toString('base64'));
            return res.redirect('/login?state=' + orignalUrl);
        }
...

次に、コールバック URL で:

app.get('/callback',
    passport.authenticate('auth0', { failureRedirect: '/login' }),
        function(req, res) {
            if (!req.user) {
                throw new Error('user null');
            }

            if(req.query.state){
                var orignalUrl = new Buffer(decodeURIComponent(req.query.state), 'base64').toString();
                return res.redirect(orignalUrl);
            }

            res.redirect("/");
});

出来上がり!

于 2015-11-29T01:25:31.713 に答える