[英]How can I encode in base64 my instance ID
我需要對我的faunadb實例的id進行編碼,因為我在這種類型/任務/(id號)/團隊的URL中使用它
我用這個創建實例:
/* code from functions/todos-create.js */
import faunadb from 'faunadb' /* Import faunaDB sdk */
/* configure faunaDB Client with our secret */
const q = faunadb.query
const client = new faunadb.Client({
secret: process.env.FAUNADB_SECRET
})
/* export our lambda function as named "handler" export */
exports.handler = (event, context, callback) => {
/* parse the string body into a useable JS object */
const eventBody = JSON.stringify(event.body)
const data = JSON.parse(eventBody)
const mission = {
data: JSON.parse(data)
}
// {"title":"What I had for breakfast ..","completed":true}
/* construct the fauna query */
return client.query(q.Create(q.Ref("classes/missions"), mission))
.then((response) => {
console.log("success", response)
/* Success! return the response with statusCode 200 */
return callback(null, {
statusCode: 200,
body: JSON.stringify(response)
})
}).catch((error) => {
console.log("error", error)
/* Error! return the error with statusCode 400 */
return callback(null, {
statusCode: 400,
body: JSON.stringify(error)
})
})
}
我在服務中使用函數調用此lambda:
createMission(data) {
return fetch('/.netlify/functions/mission-create', {
body: JSON.stringify(data),
method: 'POST'
}).then(response => {
return response.json();
});
}
然后我在我的頁面的init上加載地址'/ mission /(id number)/ team':
this._missionService.readById(this.route.snapshot.params.missionId)
再次使用這個lambda服務:
import faunadb from 'faunadb'
const q = faunadb.query
const client = new faunadb.Client({
secret: process.env.FAUNADB_SECRET
})
exports.handler = (event, context, callback) => {
const id = event.path.match(/([^\/]*)\/*$/)[0];
console.log(`Function 'mission-read' invoked. Read id: ${id}`)
return client.query(q.Get(q.Ref(q.Class("missions"), id)))
.then((response) => {
console.log("success", response)
return callback(null, {
statusCode: 200,
body: JSON.stringify(response)
})
}).catch((error) => {
console.log("error", error)
return callback(null, {
statusCode: 400,
body: JSON.stringify(error)
})
})
}
實際上這是不安全的,因為具有id號碼的url處理可以訪問我的所有任務。 我想在base64中編碼這個id,但我不知道如何做到這一點,我開始在dev中我認為首先在服務中加密id並在服務中解密但有人說我前面不安全,那么我想在后面使用base64。 謝謝你的建議 !
這個問題的解決方案絕對不是用base64來混淆id( 它不會保護任何內容 ),而是需要將用戶id與數據庫中的敏感信息相關聯。
然后,您可以讓它們針對您的身份驗證/數據服務進行身份驗證以建立身份。 然后,該服務將僅為它們提供與之關聯的記錄。
這個解決方案的棘手部分是為lambda服務編寫auth協議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.