| | const manager = require('../lib/manager'); |
| |
|
| | const verify = async (req, res, next) => { |
| | |
| | const apiKeyHeader = req.headers['x-api-key']; |
| |
|
| | |
| | if (!apiKeyHeader) { |
| | return res.status(401).json({ message: 'Unauthorized' }); |
| | } |
| |
|
| | |
| | let tokenToCompare = apiKeyHeader; |
| | if (apiKeyHeader.toLowerCase().startsWith('bearer ')) { |
| | tokenToCompare = apiKeyHeader.substring(7); |
| | } |
| |
|
| | |
| | if (tokenToCompare === process.env.AUTH_TOKEN) { |
| | try { |
| | req.account = await manager.getAccount(); |
| | if (!req.account) { |
| | |
| | return res.status(503).json({ |
| | error: { |
| | message: '服务暂时不可用,无法获取有效账户', |
| | type: 'service_unavailable', |
| | code: 'account_unavailable' |
| | } |
| | }); |
| | } |
| | |
| | next(); |
| | } catch (error) { |
| | console.error('获取账户时出错:', error); |
| | |
| | return res.status(503).json({ |
| | error: { |
| | message: '服务暂时不可用', |
| | type: 'service_unavailable', |
| | code: 'internal_error' |
| | } |
| | }); |
| | } |
| | } else { |
| | return res.status(401).json({ message: 'Unauthorized' }); |
| | } |
| | }; |
| |
|
| | module.exports = verify; |