uni-id入門(四)---過攔截用戶某些請求

      網友投稿 747 2025-03-31

      上個文章我們講了創建實例,在講基礎模塊之前我們先講如何攔截用戶的請求


      我們的視頻教程(免費)鏈接為https://static-b5208986-2c02-437e-9a27-cfeba1779ced.bspapp.com/

      由于考研所以可能文章比較短也是為了拆分每一步操作

      為什么攔截

      我們要知道用戶的某些請求是不需要權限的比如瀏覽商品,不登錄也可以瀏覽,但是用戶在購買的時候就需要確認用戶身份,所以我們要攔截用戶的某些請求。

      比如登錄前進行加購或購買操作肯定會被攔截并告知需要登錄,這一類需要登錄卻沒有登錄的我們做一個攔截

      登錄后登錄失效的我們也要攔截,所以進行某些登錄后操作(需要鑒權)的發現登錄失效的做一個攔截

      用戶的請求在后臺沒有對應請求,比如說我們的某個應用不存在A操作,那么用戶通過某些途徑進行A操作,比如說post/get某些不存在請求,這時我們告知非法請求。

      如何攔截

      很明顯 我們不攔截 登錄 注冊 等某些不需要權限/登錄才能操作的請求 我們給予放行

      這時我們可以構建一個攔截字段數組 當字段存在于數組中我們就放行,否則就攔截

      完整代碼(下面分布講解)

      'use strict'; const uniIDs = require('uni-id') exports.main = async (event, context) => { let res = {}; //響應 let params = event.params ?event.params:{}; //接收請求數據 const uniID = uniIDs.createInstance({ context: context }) const noNeedTokens = ['login', 'register', 'logout']; if (noNeedTokens.indexOf(event.action) == -1) { if (!event.uniIdToken) { res = { code: 403, message: "未攜帶token" } return res; } else { let check_user = await uniID.checkToken(event.uniIdToken, {}); if (check_user.code === 0) { params.uid = check_user.uid; } else { res = check_user; return res; } } } switch (event.action) { ...進行對應操作 default: { res = { code: 402, message: "請求非法" } break; } } //返回數據給客戶端 return res; };

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      29

      30

      31

      32

      33

      34

      35

      36

      37

      38

      39

      40

      41

      42

      43

      構建放行數組

      這里我們放行 登錄注冊退出操作

      const noNeedTokens = ['login', 'register', 'logout'];

      1

      放行不需要登錄的操作

      注意如上 這里的event

      action是判斷操作類型(比如登錄退出)

      這里如果在放行數組我們就讓他跳過登錄失效檢測直接操作

      const noNeedTokens = ['login', 'register', 'logout']; if (noNeedTokens.indexOf(event.action) == -1) { 檢測登錄是否失效或者是否登錄 } switch (event.action) { ...進行對應操作 }

      1

      2

      3

      4

      5

      6

      7

      攔截未登錄以及登錄失效

      uniIdToken是登錄后得到的令牌也就是token

      uniID.checkToken是uni-id的鑒權操作用來檢測 見文檔https://uniapp.dcloud.io/uniCloud/uni-id?id=checktoken

      步驟如下

      如果不存在uniIdToken 那么判定為未登錄

      設置響應結果res 并且直接return res;跳過后續步驟

      如果存在則判斷token是否失效

      調用uniID.checkToken來判斷(這里也可以判斷權限)

      如果未過期我們就獲取uniID.checkToken的返回結果中的uid(用戶id)

      以便于后續操作使用

      否則就將uniID.checkToken未通過的原因作為響應結果返回

      const noNeedTokens = ['login', 'register', 'logout']; if (noNeedTokens.indexOf(event.action) == -1) { if (!event.uniIdToken) { res = { code: 403, message: "未攜帶token" } return res; } else { let check_user = await uniID.checkToken(event.uniIdToken, {}); if (check_user.code === 0) { params.uid = check_user.uid; } else { res = check_user; return res; } } } switch (event.action) { ...進行對應操作 default: { res = { code: 402, message: "請求非法" } break; } }

      1

      2

      3

      4

      5

      6

      7

      8

      uni-id入門(四)---過攔截用戶某些請求

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      攔截非法請求

      看switch case 如果找不到響應操作 就告知為非法請求

      const noNeedTokens = ['login', 'register', 'logout']; if (noNeedTokens.indexOf(event.action) == -1) { if (!event.uniIdToken) { res = { code: 403, message: "未攜帶token" } return res; } else { let check_user = await uniID.checkToken(event.uniIdToken, {}); if (check_user.code === 0) { params.uid = check_user.uid; } else { res = check_user; return res; } } } switch (event.action) { ...進行對應操作 default: { res = { code: 402, message: "請求非法" } break; } }

      1

      2

      3

      4

      5

      6

      7

      8

      9

      10

      11

      12

      13

      14

      15

      16

      17

      18

      19

      20

      21

      22

      23

      24

      25

      26

      27

      28

      結語

      到此攔截請求結束

      數據結構

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel表格數據加減法運算的教程(excel表格怎么加減法)
      下一篇:Py之matplotlib.pyplot:matplotlib.pyplot的plt.legend函數的簡介、使用方法之詳細攻略
      相關文章
      亚洲伊人色一综合网| 国产精品亚洲一区二区三区在线 | 亚洲中文字幕一区精品自拍| 亚洲人成777在线播放| 亚洲国产精品久久久久婷婷软件| 日本红怡院亚洲红怡院最新| 亚洲国产三级在线观看| 国产亚洲精AA在线观看SEE | 亚洲一级毛片免费看| 亚洲videos| 亚洲一日韩欧美中文字幕在线| 亚洲av乱码一区二区三区香蕉| 亚洲一卡二卡三卡| 亚洲精品456人成在线| 亚洲精品天堂成人片AV在线播放 | 久久精品国产亚洲av四虎| 亚洲av激情无码专区在线播放| 亚洲国产美国国产综合一区二区 | 亚洲成网777777国产精品| 亚洲欧洲精品成人久久奇米网| 亚洲精品国产日韩无码AV永久免费网| 亚洲av无码乱码在线观看野外 | 亚洲毛片免费视频| 亚洲精品中文字幕无乱码麻豆| 涩涩色中文综合亚洲| 亚洲成av人片在www鸭子| 小说专区亚洲春色校园| 亚洲中文字幕成人在线| 亚洲日韩一页精品发布| 久久精品国产96精品亚洲| 久久精品国产亚洲AV嫖农村妇女 | 亚洲无码高清在线观看| 亚洲级αV无码毛片久久精品| 亚洲av无码av制服另类专区| 久久青青草原亚洲av无码app | 亚洲精品中文字幕无乱码麻豆| 亚洲风情亚Aⅴ在线发布| 亚洲精品tv久久久久| 亚洲精品成人无码中文毛片不卡| 亚洲综合在线观看视频| 亚洲三级高清免费|