iT邦幫忙

2022 iThome 鐵人賽

DAY 15
0

講完 get 來講 post,那這兩個 call api 的方法有什麼差別呢?先記得一個原則,要傳遞機密的資料用 post,如果要傳遞的參數被別人知道也無所謂就用 get

post 是傳遞資料到後台,資料不會顯示在 url 上,get 是傳遞參數到後台,參數會直接顯示在 url 上和後端的終端上,像這樣

app/function1?param1='hey'

像是做登入或者修改密碼功能就會用 post,在終端上會顯示像這樣

api/login

完全沒有暴露你的帳號密碼

你如果是用 get 做登入功能就會像這樣

api/login?account=myAccount&password=myPassword

真的是人家想不想駭你而已,那接下來來講前後端要怎麼寫吧!

後端

我們以一個登入功能來舉例,在 views.py 裡先新增一支 api,接下來的四個篇章就會講完整的驗證功能囉!這裡先簡單說明 post

class Login(ObtainAuthToken):

    def post(self, request, *args, **kwargs):
        data = request.data
        acc = data.get('username')
        pw = data.get('password')
        ...

其實我也只有在驗證相關的功能有在用 post,可能還有更簡單的例子

總之就是要用 request.data 獲得從前端傳來的資料,用 request.data.get('username') 獲得有一個 key 叫做 'username' 資料

前端

前端這邊,method 選擇使用 post,用 data 傳遞資料到後台

const login=()=>{
  axios({
    method: 'post',
    url:'localhost:8000/api/login/',
    data: {      
      username: 'username',
      password: 'password'
    },
  }) 
}

接下來要講 JWT 以及驗證,是我最想寫的幾個篇章之一,請大家敬請期待


上一篇
用 GET 串起前後端
下一篇
Json web token authentication --part1: JWT introduction
系列文
Vue+Django+MongoDB+Nginx 全端開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言