小明:最近我们在做师范大学的统一身份认证平台,你对这个项目有什么想法吗?

小李:我觉得这是一个非常重要的项目。统一身份认证可以让全校师生使用一个账号登录多个系统,比如教务、图书馆、邮件等。
小明:没错,而且这样也提高了安全性。你是怎么设计的?
小李:我们采用了OAuth2.0协议,配合JWT(JSON Web Token)来实现令牌验证。
小明:能给我看看代码吗?
小李:当然可以。这是后端生成JWT的示例代码:
from flask_jwt import JWT
import jwt
import datetime
def generate_token(user_id):
payload = {
'user_id': user_id,
'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1)
}
token = jwt.encode(payload, 'secret_key', algorithm='HS256')
return token.decode('utf-8')
小明:那前端是怎么处理的呢?
小李:前端收到token后,会存储在localStorage中,并在每次请求时附带在Authorization头里。
小明:听起来挺复杂的,但确实很实用。
小李:是的,这不仅提升了用户体验,也减少了重复开发的工作量。
小明:谢谢你的解释,我对这个项目更有信心了。
小李:不客气,我们一起努力把这个项目做好。
