生活キャンプ(5週目)
📖 に質問
- Cookie, Session & JWT
ログイン方法とValidationの開発について
📝 n/a.ターゲット
-取引
-取引
- JWT
- OAuth
▶▼開発ログ
1.授業内容を整理する
1)HTTP特性
2)会話とCookie
3) JWT
クライアントは、自分のリポジトリにトークンを格納します.
クライアントが次の要求を必要とする場合、ストレージトークンを使用してサーバから応答を受信し、追加の検証を必要としません.
4)取引
2.取引
1)概念と特徴
簡単に表現するには、下図のように回転ドアで表示します.
検索に失敗してもデータベースは変化しないため、Selectは適用されません.
2)応用
async transactionFuction(parameter1, parameter2, parameter3) {
// mysql 커넥션 풀 생성
const connection = await pool.getConnection(async (conn) => conn);
try {
// 트랜잭션 시작!
await connection.beginTransaction();
// insert, update, delete 명령 실행
await insertSomething(parameter1);
await updateSomething(parameter2);
await deleteSomething(parameter3);
// 트랜잭션 커밋!
await connection.commit();
return 'success!'
} catch (error) {
// 에러 발생하면 롤백!
await connection.rollback();
return error;
} finally {
// 커넥션 풀 해제
connection.release();
}
}
commitメソッドは、すべてのコマンドを実行した後にコミットを開始します.
rollbackメソッドは、エラーが発生したときにロールバックを開始します.
3. JWT
1)認証プロセス
2)JWTリリース
const jwt = require('jsonwebtoken');
const token = asycn function(userIdRows) {
return await jwt.sign(
{
// payload에 넣을 내용
userId: userIdRows[0]
},
// secret key 설정
'secret_key_blahblah!!',
{
expiresIn: '365d',
subject: 'userInfo'
}
);
}
3)JWTチェック
const jwt = require('jsonwebtoken');
const token = req.headers['jwtValue'];
const checkJWT = async function() {
await jwt.verify(jwtValue, 'secret_key_blahblah!!', (err, chekcedToken) => {
if (err) throw err;
return checkedToken;
});
}
4. OAuth
&リンクバー
[1] : キャンプ場
[2] : JWTとは?
Reference
この問題について(生活キャンプ(5週目)), 我々は、より多くの情報をここで見つけました https://velog.io/@bbaekddo/risingcamp5テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol