Alice
嗨,Bob,我最近在做一个学院的管理系统,想加入一个‘统一身份认证’的功能,你能帮我吗?
Bob
当然可以!不过首先我们需要明确什么是‘统一身份认证’。简单来说,就是用户只需要登录一次就可以访问所有相关的服务或系统。
Alice
明白了,那我们怎么开始呢?
Bob
我们可以从后端提供API接口开始。例如,创建一个`/login`接口,接收用户名和密码,验证后返回一个JWT(JSON Web Token)。
Alice
好的,后端有了,前端怎么处理呢?
Bob
前端需要发送请求到这个`/login`接口,然后存储返回的JWT。每次访问受保护的页面时,前端都需要携带这个JWT。

Alice
听起来不错,那具体代码是什么样的呢?
Bob
前端部分可以这样写:
async function login(username, password) {
const response = await fetch('/api/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ username, password })
});
const data = await response.json();
if (data.token) {
localStorage.setItem('token', data.token);
}
}
function checkAuthentication() {
const token = localStorage.getItem('token');
return !!token;
}
]]>
这里使用了`localStorage`来存储JWT,确保它在浏览器会话期间可用。
Alice
非常感谢,Bob!这样一来,我们的学院管理系统就具备了‘统一身份认证’的功能。
Bob
不客气,如果还有其他问题随时问我。