認証を行う適切な方法を見つけようとしていますが、これは GitHub issue page の扱いにくいテーマです。
私の認証は簡単です。セッションにJWTトークンを保存します。承認のために別のサーバーに送信します。 trueに戻った場合、続行します。falseに戻った場合、セッションをクリアし、メインページに送信します。
server.js
ファイルには次のものがあります(注- nextjs learn の例を使用し、isAuthenticated
を追加するだけです):
function isAuthenticated(req, res, next) {
//checks go here
//if (req.user.authenticated)
// return next();
// IF A USER ISN'T LOGGED IN, THEN REDIRECT THEM SOMEWHERE
res.redirect('/');
}
server.get('/p/:id', isAuthenticated, (req, res) => {
const actualPage = '/post'
const queryParams = { id: req.params.id }
app.render(req, res, actualPage, queryParams)
})
これは設計どおりに機能します。ページを更新すると/p/123
、/
にリダイレクトされます。ただし、next/link
hrefを介してそこに行く場合は、そうではありません。これは、現時点ではエクスプレスを使用していないが、次のカスタムルーティングを使用しているためだと考えています。
ユーザーがログインしていることを確認できるように、エクスプレスを通過しないすべてのnext/link
をチェックインする方法はありますか?
次のチャットのティムはこれを解決するのに役立ちました。解決策は見つけることができます こちら しかし、私は彼を引用します。
_app.js
getInitialProps
および このようなリダイレクト でチェックを行うことができます例のスケルトンテンプレート も作成しました。ご覧になれます。