你可能已经听说过“统一身份认证”这个词儿,也就是我们常说的SSO。这玩意儿在咱们学院里用起来,可以大大提高网络安全,减少大家记密码的麻烦。今天,我就给大家分享一下怎么用Python实现一个简单的SSO系统。
首先,我们需要一个数据库来存储用户信息。这里我们用SQLite作为数据库,因为它轻便简单。假设我们有一个users表,包含用户名和密码:
import sqlite3 conn = sqlite3.connect('users.db') c = conn.cursor() c.execute('''CREATE TABLE users (username TEXT PRIMARY KEY, password TEXT)''') c.execute("INSERT INTO users VALUES ('alice', 'password123')") conn.commit() conn.close()
接下来,我们需要一个登录页面让用户输入他们的凭据。我们可以用Flask这个Web框架来简化这个过程:
from flask import Flask, request, redirect, session app = Flask(__name__) app.secret_key = 'your_secret_key' @app.route('/login', methods=['GET', 'POST']) def login(): if request.method == 'POST': username = request.form['username'] password = request.form['password'] # 这里应该连接数据库检查凭据,为了演示,我们直接验证 if username == 'alice' and password == 'password123': session['username'] = username return redirect('/dashboard') else: return 'Invalid credentials' return '''''' @app.route('/dashboard') def dashboard(): if 'username' in session: return f'Welcome {session["username"]}!' return 'Please log in.'
在这段代码里,我们创建了一个简单的登录页面,当用户成功登录后,他们的用户名会被保存在session中。这样,他们就可以访问其他需要认证的服务了,而不需要再次输入凭据。
这就是如何使用Python和Flask实现一个基础的SSO系统,希望对你有所帮助!