replit auth - 87天 - 在线学python100天

记录

今天学习的知识点是使用 replit 的登录验证功能。

这个功能点还有点不是很搞懂，应该在是代码运行的状态下 enable page ，才能正常运行，也就是代码要先 start 才可以。

开启之后，获取几个不同的用户信息。比如 X-Replit-User-Name 是用户名，还有用户 Id、组之类。

本次的练习是在 87 天的基础上，增加用户的登录验证功能。用了 2 个验证是不是有点没必要啊！

CODE

main.py

Copy

from flask import Flask, request, redirect, session
from replit import db
import os
from datetime import datetime

app = Flask(__name__)
app.secret_key = os.environ['sission_key']

@app.route('/', methods=['GET'])
def index():
#db['user'] = {'name': 'reno', 'pass': '123'}
uname = request.headers['X-Replit-User-Name']
if uname != "Dengle":
return redirect('/log')
if session.get('name'):
text1 = ""
f = open("index.html", "r")
page = f.read()
f.close()
for key in db.keys():
if key and key != "user":
name = db[key]
text = f"""

{name["title"]}
{key}
{name["text"]}
"""
text1 += text
page = page.replace("{text}", text1)
return page
else:
return redirect('/log')

@app.route('/', methods=["POST"])
def submit():
text = request.form
ttime = datetime.now()
title = text["title"]
text = text["text"]
db[ttime] = {"title": title, "text": text}
return redirect('/')

@app.route('/log1')
def log1():
return f"page{session.get('name')}"

@app.route('/log')
def log():
f = open("login.html", "r")
page = f.read()
f.close()

return page

@app.route('/login', methods=["POST"])
def login():
user = request.form
vuser = db['user']
if vuser['name'] == user["name"] and vuser['pass'] == user["pass"]:
session["name"] = vuser['name']
print("--")
print(session.get('name'))
print("--")
return redirect("/")
else:
return "NAME OR PASS ERROR!"

app.run(host='0.0.0.0', port=81)