fix(together): JWT なし username 認証を復元(Posimai アカウント不要メンバー対応)
This commit is contained in:
parent
45893eb453
commit
4390748534
17
server.js
17
server.js
|
|
@ -807,10 +807,7 @@ async function togetherEnsureMember(pool, res, groupId, username, jwtUserId) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
try {
|
try {
|
||||||
if (!jwtUserId) {
|
if (jwtUserId) {
|
||||||
res.status(401).json({ error: '認証が必要です' });
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
const strict = await pool.query(
|
const strict = await pool.query(
|
||||||
`SELECT 1 FROM together_members m
|
`SELECT 1 FROM together_members m
|
||||||
WHERE m.group_id = $1 AND (
|
WHERE m.group_id = $1 AND (
|
||||||
|
|
@ -825,6 +822,18 @@ async function togetherEnsureMember(pool, res, groupId, username, jwtUserId) {
|
||||||
if (strict.rows.length > 0) return true;
|
if (strict.rows.length > 0) return true;
|
||||||
res.status(403).json({ error: 'グループのメンバーではありません' });
|
res.status(403).json({ error: 'グループのメンバーではありません' });
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
// JWT なし: username のみで照合(Together は Posimai アカウント不要のため継続許容)
|
||||||
|
const primaryUsername = usernames[0];
|
||||||
|
const legacyOnly = await pool.query(
|
||||||
|
'SELECT 1 FROM together_members WHERE group_id=$1 AND username=$2',
|
||||||
|
[gidNum, primaryUsername]
|
||||||
|
);
|
||||||
|
if (legacyOnly.rows.length === 0) {
|
||||||
|
res.status(403).json({ error: 'グループのメンバーではありません' });
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
console.error('[Together] togetherEnsureMember', e.message);
|
console.error('[Together] togetherEnsureMember', e.message);
|
||||||
res.status(500).json({ error: 'Internal server error' });
|
res.status(500).json({ error: 'Internal server error' });
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue