nodejsのkoa 2--cookieとsessionの使用


nodejsのkoa 2–cookieとsessionの使用
クッキー
以前はフロントエンドブラウザでクッキーを操作するだけで、サービス側でクッキーを使用することが少なかったので、クッキーはクライアントで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を使って、すばやくプロジェクトを構築する方法を記録します.
本文は手で打つだけです.不適切なところがあれば、メッセージをください.友達に助けがあれば、いいですね.ありがとうございます.