nodejsのkoa 2--cookieとsessionの使用
3883 ワード
nodejsのkoa 2–cookieとsessionの使用
クッキー
以前はフロントエンドブラウザでクッキーを操作するだけで、サービス側でクッキーを使用することが少なかったので、クッキーはクライアントでjs設定で読み取り削除するなどの錯覚がありましたが、実際には多くのクッキーはサービス側からレスポンスのheadersに書き込みました.今日はクッキーのサービス端での使用を記録します.たとえば、コア記録クッキーは、とても簡単です.
まずcookieのconfigを定義して、cookies.set方法を使って直接クッキーを設定できます.
クッキーを削除するとフロントと同じように、クッキー値を空に設定し、maxAgeを0に設定したり、クッキーの賞味期限を設定したりして、クッキーを有効期限が切れたらいいです.具体的な操作は以下の通りです.
sessionは、cookieとは別の記録クライアント状態のメカニズムであり、cookieはクライアントブラウザに保存されていますが、sessionはサーバに保存できます.sessionは一定の時間内にサーバに保存されます.したがって、アプリケーションのアクセスが多いとクッキーを使用することができます.
koaはsessionを使用すると、koa-sessionのミドルウェアに使用されます.以下のように使用されます.
1.据え付け
npm install koa-session--save
2.設定セッション
本文は手で打つだけです.不適切なところがあれば、メッセージをください.友達に助けがあれば、いいですね.ありがとうございます.
クッキー
以前はフロントエンドブラウザでクッキーを操作するだけで、サービス側でクッキーを使用することが少なかったので、クッキーはクライアントでjs設定で読み取り削除するなどの錯覚がありましたが、実際には多くのクッキーはサービス側からレスポンスのheadersに書き込みました.今日はクッキーのサービス端での使用を記録します.たとえば、コア記録クッキーは、とても簡単です.
まずcookieのconfigを定義して、cookies.set方法を使って直接クッキーを設定できます.
const cookieConfig = {
maxAge: 1000 * 60 * 3, // Date.now()
expires: new Date('2019-03-08'), // Date, session , cookie
path: '/', // , '/'
domain: 'localhost', //
secure: false, // cookie false, true https
httpOnly: false, // cookie, true
overwrite: true // , cookie ( false). true, Cookie( ) Cookie Set-Cookie 。
}
// cookie
router.get('/setCookie',async (ctx,next) => {
ctx.cookies.set('ceshi', 'ceshishi', {cookieConfig});
ctx.response.body = {status: 200, msg: ' '};
});
// cookie ctx.cookie.get(key);
router.get('/getCookie',async (ctx,next) => {
let cookies = ctx.cookies.get('ceshi'});
ctx.response.body = {status: 200, cookie: cookies};
});
簡単です.フロントでcookieを設置するようにお願いします.例は以下の通りです.
var setCookie = () => {
$.ajax({
type:'GET',
url:'/setCookie',
dataType:'json',
success(data){
console.log(data);
},
error (err){
console.log(err);
}
});
};
要求後、私達のブラウザコントロールを確認してください.クッキーを削除するとフロントと同じように、クッキー値を空に設定し、maxAgeを0に設定したり、クッキーの賞味期限を設定したりして、クッキーを有効期限が切れたらいいです.具体的な操作は以下の通りです.
// cookie
router.get('/delCookie',async (ctx,next) => {
ctx.cookies.set('ceshi','',{maxAge:0}});
ctx.response.body = {status: 200, msg:'cookie '};
});
セッションsessionは、cookieとは別の記録クライアント状態のメカニズムであり、cookieはクライアントブラウザに保存されていますが、sessionはサーバに保存できます.sessionは一定の時間内にサーバに保存されます.したがって、アプリケーションのアクセスが多いとクッキーを使用することができます.
koaはsessionを使用すると、koa-sessionのミドルウェアに使用されます.以下のように使用されます.
1.据え付け
npm install koa-session--save
2.設定セッション
const session = require('koa-session');
// session
app.keys = ['secret'];
const CONFIG = {
key: 'koa:sess', // cookie key ( koa:sess)
maxAge: 86400000, // cookie , , 1
overwrite: true, // ( default true)
httpOnly: false, // cookie , true
signed: true, // true
rolling: false, // cookie, cookie ( :false)
renew: false, // (boolean) ,
};
app.use(session(CONFIG, app));
3.セッション使用// session
router.get('/setSession', async (ctx, next) => {
try {
ctx.session.username = ctx.query.name;
ctx.session.age = ctx.query.age;
ctx.body = {status: 200, msg: 'session '};
} catch (e) {
ctx.body = {status: 200, msg: 'session ', err: e};
}
});
// session
router.get('/getSession', async (ctx, next) => {
try {
let name = ctx.session.username,
age = ctx.session.age;
ctx.body = {
status: 200,
msg: 'session ',
name: name,
age: age
};
} catch (e) {
ctx.body = {
status: 200,
msg: 'session ',
err: e
};
}
});
これで、koa sessionとcookieの紹介が終わり、楽しいコードを書くことができます.次の編では、弟がkoaを使って、すばやくプロジェクトを構築する方法を記録します.本文は手で打つだけです.不適切なところがあれば、メッセージをください.友達に助けがあれば、いいですね.ありがとうございます.