Skip to content

Commit

Permalink
Update takostoken model to include origin field
Browse files Browse the repository at this point in the history
  • Loading branch information
tako0614 committed Jun 16, 2024
1 parent 73d43b0 commit d698541
Show file tree
Hide file tree
Showing 10 changed files with 31 additions and 22 deletions.
4 changes: 4 additions & 0 deletions models/takostoken.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,10 @@ export const csrfTokenSchama = new mongoose.Schema({
required: true,
unique: true,
},
origin: {
type: String,
required: true,
},
timestamp: { type: Date, default: Date.now, expires: 60 * 2 },
})
const takostoken = mongoose.model("takostoken", csrfTokenSchama)
Expand Down
9 changes: 5 additions & 4 deletions routes/api/v1/chats/talkdata.ts
Original file line number Diff line number Diff line change
Expand Up @@ -192,6 +192,9 @@ export const handler = {
}
if (UnreadMessageIds.length !== 0) {
//takostoken
const friendDomain = splitUserName(
OtherServerMessages[0].userid,
).domain
const takosTokenArray = new Uint8Array(16)
const randomarray = crypto.getRandomValues(takosTokenArray)
const takosToken = Array.from(
Expand All @@ -200,10 +203,8 @@ export const handler = {
).join("")
takostoken.create({
token: takosToken,
origin: friendDomain
})
const friendDomain = splitUserName(
OtherServerMessages[0].userid,
).domain
const reuslt = await takosfetch(
`${friendDomain}/api/v1/server/talk/read`,
{
Expand Down Expand Up @@ -255,7 +256,7 @@ export const handler = {
).join("")
takostoken.create({
token: takosToken,
userid: ctx.state.data.userid,
origin: splitUserName(friendId[0]).domain,
})
const OtherServerUser = splitUserName(friendId[0])
const OtherServerUserDomain = OtherServerUser.domain
Expand Down
4 changes: 2 additions & 2 deletions routes/api/v1/friends/request.ts
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ export const handler = {
randomarray,
(byte) => byte.toString(16).padStart(2, "0"),
).join("")
takostoken.create({ token: takosToken, userid: userid })
takostoken.create({ token: takosToken, origin: splitFriendName?.domain })
const requestResult = await takosfetch(
`${splitFriendName?.domain}/api/v1/server/friends/request`,
{
Expand Down Expand Up @@ -557,7 +557,7 @@ export const handler = {
const takosToken = crypto.randomUUID()
takostoken.create({
token: takosToken,
userid: userid,
origin: serverDomain,
})
const requestResult = await takosfetch(
`${serverDomain}/api/v1/server/friends/request`,
Expand Down
21 changes: 12 additions & 9 deletions routes/api/v1/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -240,15 +240,6 @@ async function sendMessage(
}),
)
} else if (session.roomType === "remotefriend") {
const takosTokenArray = new Uint8Array(16)
const randomarray = crypto.getRandomValues(takosTokenArray)
const takosToken = Array.from(
randomarray,
(byte) => byte.toString(16).padStart(2, "0"),
).join("")
takostoken.create({
token: takosToken,
})
const roomMenber = await rooms.findOne({
uuid: roomID,
})
Expand Down Expand Up @@ -304,6 +295,16 @@ async function sendMessage(
messageType: MessageType,
}),
)
const takosTokenArray = new Uint8Array(16)
const randomarray = crypto.getRandomValues(takosTokenArray)
const takosToken = Array.from(
randomarray,
(byte) => byte.toString(16).padStart(2, "0"),
).join("")
takostoken.create({
token: takosToken,
origin: splitUserName(frienduuid).domain,
})
const sendFriendServer = await takosfetch(
`${splitUserName(frienduuid).domain}/api/v1/server/talk/send`,
{
Expand Down Expand Up @@ -422,6 +423,7 @@ async function sendConecctingUserMessage(
).join("")
takostoken.create({
token: takosToken2,
origin: splitUserName(sender).domain,
})
await takosfetch(
`${splitUserName(sender).domain}/api/v1/server/talk/read`,
Expand Down Expand Up @@ -549,6 +551,7 @@ async function readMessage(messageids: [string], sender: string) {
).join("")
takostoken.create({
token: takosToken,
origin: splitUserName(sender).domain,
})
await takosfetch(
`${splitUserName(sender).domain}/api/v1/server/talk/read`,
Expand Down
2 changes: 1 addition & 1 deletion routes/api/v1/server/friends/[ID]/icon.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ export const handler = {
})
}
const isTrueToken = await takosfetch(
`${userServerDomain}/api/v1/server/token?token=${token}`,
`${userServerDomain}/api/v1/server/token?token=${token}&origin=${env["serverDomain"]}`,
)
//userが存在するか確認
const user = await users.findOne({
Expand Down
2 changes: 1 addition & 1 deletion routes/api/v1/server/friends/[ID]/profile.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ export const handler = {
})
}
const isTrueToken = await takosfetch(
`${serverDomain}/api/v1/server/token?token=${token}`,
`${serverDomain}/api/v1/server/token?token=${token}&origin=${env["serverDomain"]}`,
)
if (!isTrueToken) {
return new Response(JSON.stringify({ "status": false }), {
Expand Down
4 changes: 2 additions & 2 deletions routes/api/v1/server/friends/request.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ export const handler = {
})
}
const isTrueToken = await takosfetch(
`${userDomain}/api/v1/server/token?token=` + token,
`${userDomain}/api/v1/server/token?token=` + token + "&origin=" + env["serverDomain"],
)
if (!isTrueToken) {
return new Response(JSON.stringify({ status: false }), {
Expand Down Expand Up @@ -229,7 +229,7 @@ export const handler = {
console.log(userDomain, env["serverDomain"], friendDomain)
console.log("3")
const isTrueToken = await takosfetch(
`${userDomain}/api/v1/server/token?token=` + token,
`${userDomain}/api/v1/server/token?token=` + token + "&origin=" + env["serverDomain"],
)
if (!isTrueToken) {
return new Response(JSON.stringify({ status: false }), {
Expand Down
2 changes: 1 addition & 1 deletion routes/api/v1/server/talk/read.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ export const handler = {
})
}
const isTrueToken = await takosfetch(
`${domain}/api/v1/server/token?token=` + token,
`${domain}/api/v1/server/token?token=` + token + "&origin=" + env["serverDomain"],
)
if (isTrueToken === null || isTrueToken === undefined) {
return new Response(JSON.stringify({ status: false }), {
Expand Down
2 changes: 1 addition & 1 deletion routes/api/v1/server/talk/send.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ export const handler = {
}
const { domain, userName } = splitUserName(sender)
const isTrueToken = await takosfetch(
`${domain}/api/v1/server/token?token=` + token,
`${domain}/api/v1/server/token?token=` + token + "&origin=" + env["serverDomain"],
)
if (isTrueToken === null || isTrueToken === undefined) {
return new Response(JSON.stringify({ status: false }), {
Expand Down
3 changes: 2 additions & 1 deletion routes/api/v1/server/token.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,13 @@ export const handler = {
async GET(req: Request, ctx: any) {
const requrl = new URL(req.url)
const token = requrl.searchParams.get("token") || ""
const origin = requrl.searchParams.get("origin") || ""
if (token === "" || token === null || token === undefined) {
return new Response(JSON.stringify({ "status": false }), {
status: 400,
})
}
const tokenInfo = await takostoken.findOne({ token })
const tokenInfo = await takostoken.findOne({ token, origin})
if (tokenInfo === null || tokenInfo === undefined) {
return new Response(JSON.stringify({ "status": false }), {
status: 400,
Expand Down

0 comments on commit d698541

Please sign in to comment.