统一身份认证系统




小明:最近我们公司要上线一个统一身份认证系统,你有什么建议吗?
小李:我觉得应该先设计一个核心模块,比如使用OAuth2.0协议进行用户认证。
小明:那具体的代码怎么写呢?能给我看个例子吗?
小李:当然可以。下面是一个简单的Python Flask示例,使用JWT进行身份验证:
from flask import Flask, request, jsonify
import jwt
import datetime
app = Flask(__name__)
SECRET_KEY = 'your-secret-key'
def generate_token(user_id):
payload = {
'user_id': user_id,
'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1)
}
return jwt.encode(payload, SECRET_KEY, algorithm='HS256')
@app.route('/login', methods=['POST'])
def login():
username = request.json.get('username')
password = request.json.get('password')
# 这里应替换为真实的用户验证逻辑
if username == 'admin' and password == '123456':
token = generate_token(1)
return jsonify({'token': token})
return jsonify({'error': 'Invalid credentials'}), 401
if __name__ == '__main__':
app.run(debug=True)
小明:这个代码看起来不错,但是用户信息该怎么存储呢?
小李:我们可以用数据库来保存用户信息,比如MySQL或PostgreSQL,同时配合一个详细的开发手册,确保团队成员都能理解并维护系统。
小明:明白了,手册不仅包括API文档,还应该有部署流程和常见问题解答。
小李:没错,好的文档是系统长期稳定运行的重要保障。