back
Express.js , cookie ログイン認証の例, esbuild + React
id: 166, 2024-10-02
概要:
Express.js, cookie ログイン認証の試作メモになります。
- ログイン完了データを、cookie保存します。
- middlewareで、ログインデータが無い場合。エラー判定で、指定画面にリダイレクト
- .envからパスワード等取得、DB使わない例です
[ 公開日: 2024/10/02 ]
構成
- Express.js
- esbuild
- React
- typescript
作成したコード
dev-start
yarn build
yarn dev
- example/auth_cookie/src/index.ts
- https://github.com/kuc-arc-f/express_57auth/blob/main/example/auth_cookie/src/index.ts
- ログイン完了判定、middleware内で検証。
//middleware
app.use(async function(req: any, res: any, next: any){
const valid = await Common.validUser(req, res);
if(!valid) {
console.log("nothing, user-session");
res.redirect("/login");
} else {
next();
}
});
example/auth_cookie/src/routes/userRouter.ts
https://github.com/kuc-arc-f/express_57auth/blob/main/example/auth_cookie/src/routes/userRouter.ts
ログイン成功時に、cookieにログイン完了データ保存します。
....
const body = req.body;
console.log(req.body);
console.log("AUTH_USER_MAIL= ", process.env.AUTH_USER_MAIL);
//console.log("AUTH_PASSWORD= ", process.env.AUTH_PASSWORD);
if(process.env.AUTH_USER_MAIL === body.email
&& process.env.AUTH_PASSWORD === body.password
) {
console.log("OK");
//process.env.APP_NAME
const key = process.env.APP_NAME + "_auth"
res.cookie(key, process.env.AUTH_USER_ID);
retObj.ret = 200;
return res.json(retObj)
}
retObj.ret = 400;
return res.json(retObj)