back
htmx Auth (簡易的認証)
id: 126, 2024-08-24
### 概要:
htmxで。簡易的な認証の例になります。
- .envから、パスワード等から読み込む方法です。
- bundler は、Viteを使用する例です。
[ 作成日: 2024/08/24 ]
### 構成
- htmx
- Vite:5.2
- typescript: 5.4
- express
- tailwindcss
### 作成したコード
- example/simple_auth/src/pages/Login.ts
<form
hx-post="/api/common/user_login"
hx-trigger="submit"
hx-target="#resulte_form1"
hx-on--before-request=""
hx-on--after-request="Login.afterPostForm1()"
>
<label class="text-2xl font-bold my-2">Email:</label>
<input type="text" id="email" name="email"
class="input_text" />
<hr class="my-2" />
<label class="text-2xl font-bold my-2">Password:</label>
<input type="text" id="password" name="password"
class="input_text" />
<hr class="my-2" />
<button type="submit" class="btn btn-purple">Login</button>
</form>
<hr />
<h3 id="resulte_form1" class="d-none"></h3>
- example/simple_auth/src/routes/commonRouter.ts
- ログインのエンドポイントに、POST送信します。
router.post("/user_login", async function(req: any, res: any) {
const resObj = {ret: 500, data: {}, message: "", config: {} };
try {
console.log(req.body);
resObj.config = {appName: import.meta.env.VITE_APP_NAME};
const email = import.meta.env.VITE_AUTH_USER;
const password = import.meta.env.VITE_AUTH_PASSWORD;
console.log("email=", email);
console.log("password=", password);
if(
(req.body.email === email) && (req.body.password === password)
){
//@ts-ignore
resObj.ret = 200;
return res.json(resObj);
}
//console.log(data);
//@ts-ignore
return res.json(resObj);
} catch (error) {
console.error(error);
res.sendStatus(500);
}
});
- https://github.com/kuc-arc-f/express_48htmx/blob/main/example/simple_auth/src/routes/commonRouter.ts