note

Session

session主要是對不同的用戶進行操作,可以用這個進行帳號的管理

引入session import { Session } from "https://deno.land/x/oak_sessions/mod.ts";

使用session const session = new Session();

使用router時,注意,如果觸發的函式有用到session,就要加 session.initMiddleware()

import { Router } from "https://deno.land/x/oak/mod.ts";
import { Session } from "https://deno.land/x/oak_sessions/mod.ts";

const session = new Session();
const router = new Router();

router.get('/', session.initMiddleware(),list) // list函式裡有用到session,所以要加
  .get('/post/:id', show)
  .post('/post', session.initMiddleware(), create)

使用session常用功能,get和set,可以讓不同電腦存取不同的使用者

async function login(ctx){
    // 設置數據(登入綁定使用著)
    ctx.state.session.set('user', user)
    // 取得數據(可以用在需要使用者名字的地方),需要加上await
    var user = await ctx.state.session.get('user')
    
    console.log(user.username)
    
    //....
}
// 在logout時,把使用者清空
async function logout(ctx) {
   ctx.state.session.set('user', null)
}