このチュートリアルで説明されているように、OWIN と lock.js で Auth0 を使用しています。唯一の違いは、MVC の代わりに Nancy を使用していることですが、違いはありません。
ログインは正常に機能しています。ここで、ユーザーが最初に要求したページ、つまりログイン フォームにリダイレクトされたときに入力した URL にユーザーをリダイレクトできるようにしたいと考えています。
Auth0 のチュートリアルやドキュメントに情報が見つかりません。
一般的な方法は、元の 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("/");
});
出来上がり!