Junior to Senior Web Developer Roadmap (Part III)

The note of udemy course: The Complete Junior to Senior Web Developer Roadmap(2018)

Wed, 24 Oct 2018

JWT (Json Web Token)

Traditional Cookie-Based Auth

需要在 Server 端(DB),儲存使用者的 Session,藉以達成帶有狀態的請求。

Token-Based Auth

不需要儲存使用者 Session,需要的資訊可以從 Token 中解析出來。

Reference

簡潔安全的資料傳輸方式 JWT介紹和優缺點及適用場景分析

Docker

Install

透過官網下載符合系統的安裝檔,一步一步完成安裝即可。

Docker

Redis

Redis 是一個儲存在記憶體中(memory)的鍵值(key-value)資料庫。

Install

透過官網下載安裝檔進行安裝

Usage

透過命令行執行 redis-cli

Data Types

Hash

可以想像成 JS 中的物件

HMSET user id 45 name "Jessie"
# 大概是像這樣
# const user = {
#     id: 45,
#     name: "Jessie"
# }

HGET user id
# "45"
HGET user name
# "Jessie"

HGETALL user
# "id"
# "45"
# "name"
# "Jessie"

List

lpush list "item1"

# 取得 List 所有資料
lrange list 0 -1
# "item1"

# 從 List 最左邊加入一個 item
lpush list "item2"
# "item2"
# "item1"

# 從 List 最右邊加入一個 item
rpush list "item3"
# "item2"
# "item1"
# "item3"

# 同理,移除的話可以用 LPOP、RPOP

SET、Sorted SET

SET

是無序且唯一的。

# 加入 KEY 為 set 的 SET
SADD set 1 2 3 4 5

# 取得 set 的值
SMEMBERS set
# "1"
# "2"
# "3"
# "4"
# "5"

# 在加入一個 hello 進入 set
SADD set "hello"

# 可以看出 set 是無序的
SMEMBERS set
# "hello"
# "4"
# "3"
# "5"
# "1"
# "2"
 
# 確認是否為 set 中的值
SISMEMBER set "hello"
# "1" => 代表有
# "0" => 代表沒有
Sorted Sets

有序,但一樣是唯一的。

# 加入 KEY 為 sortedset 的 Sorted SET
ZADD sortedset 50 "item1"
ZADD sortedset 40 "item2"

# 取得 sortedset 的值
ZRANGE sortedset 0 -1
# 會根據加入時給的分數由小到大排列
# "item2"
# "item1"

# 在加入一個 hello 進入 set
ZADD sortedset 10 "item3"
# "item3"
# "item2"
# "item1"

ZRANK sortedset "item2"
# "1" => 代表其排定的 Index

Reference

Quick Start 資料庫的好夥伴:Redis

AWS

Lambda

IAM

由 AWS 提供的一個權限控管服務,透過此服務來控管對 AWS 上其他資源的訪問。

官方DOC serverless DOC

Serverless

Install

npm install -g serverless

Usage

// type sls as alias

// this cmd can show all commands that can use
serverless

// 會在當前目錄創建一個模板(aws-nodejs)
sls create -t aws-nodejs

// 利用 IAM 增加一個使用者,並使用其權限進行操作,僅需設定一次
sls config credentials --provider aws --key AKIAIMM3C43GP5LBTUFA --secret 9odr/t5NB9GL5HBpK5 x1gLuj+o/jDO8tJSjWjQcP

// 透過 serverless 部署至 lambda
sls deploy

// 測試部署是否成功
// 加上 local 僅會在本地端測試 並不會計量
sls invoke local --function test
// 沒加上 local 的話就會被AWS計量
sls invoke --function test

YML Config

Handler

Deploying

INVOKE

CI/CD

CI (Continuous Integration)

CD (Continuous Delivery & Continuous Deployment)

Loading...
Ben

Ben 紀錄學習過程中的筆記…