实现跨平台认证通常涉及以下几个关键步骤和技术:
const express = require('express');
const jwt = require('jsonwebtoken');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.json());
const SECRET_KEY = 'your-secret-key';
app.post('/login', (req, res) => {
const user = req.body;
// 验证用户信息
if (user.username === 'admin' && user.password === 'password') {
const accessToken = jwt.sign({ username: user.username }, SECRET_KEY, { expiresIn: '1h' });
const refreshToken = jwt.sign({ username: user.username }, SECRET_KEY, { expiresIn: '7d' });
res.json({ accessToken, refreshToken });
} else {
res.status(401).send('Invalid credentials');
}
});
app.listen(3000, () => {
console.log('Auth Server is running on port 3000');
});
const express = require('express');
const jwt = require('jsonwebtoken');
const app = express();
app.use(express.json());
const SECRET_KEY = 'your-secret-key';
app.get('/protected', (req, res) => {
const token = req.headers['authorization'];
if (!token) return res.status(403).send('No token provided');
jwt.verify(token, SECRET_KEY, (err, decoded) => {
if (err) return res.status(401).send('Failed to authenticate token');
res.json({ message: `Hello ${decoded.username}, you have accessed the protected resource!` });
});
});
app.listen(3001, () => {
console.log('Resource Server is running on port 3001');
});
通过上述步骤和示例代码,你可以实现一个基本的跨平台认证系统。根据具体需求,你可能需要进一步扩展和优化这个系统。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。