簡體   English   中英

如何在以flask作為后端的react js應用程序中進行會話管理?

[英]How to do session management in react js app with flask as backend?

您好,我正在開發使用 create-react-app 創建的 Web 應用程序。 我正在使用燒瓶作為后端。 在燒瓶中,我使用 CORS 和 cross_origin。 我的應用程序如下

import random
from flask import Flask, request, session, jsonify, Response
from dbconnect import POD_Admin_DB as dbAdmin 
from flask_cors import CORS, cross_origin

app = Flask(__name__)
CORS(app)
otp = "000000"
app.secret_key = b'_5#y2L"F4Q8z\n\xec]/'

@app.route('/api/requestOTP',methods=["POST", "OPTIONS"])
@cross_origin(supports_credentials=True)
def pod_requestOTP():
    print('requestOTP')    
    session['otp']=generate_code()
    print((session))
    print (session['otp'])
    #userPhone=request.json['userPhone']
    return session['otp']

@app.route('/api/verifyOTP',methods=["POST","OPTIONS"])
@cross_origin(supports_credentials=True)
def pod_verifyOTP():
    if request.method =="OPTIONS":
        print("here")
        return Response(headers={"Content-Type": "application/json charset=utf-8",
        "Allow": "POST, OPTIONS",
        "Access-Control-Allow-Origin": "*",
        "Access-Control-Allow-Headers": "Content-Type",
        "Access-Control-Allow-Methods": "DELETE, GET, HEAD, OPTIONS, PATCH, POST, PUT"
        })
    elif request.method == "POST":

        print("verifyOTP")
        print((session))
        #print(dir(request))
        print(request.data)
        otp = request.json['pod_Otp']
        print((otp))

        userPhone=request.json['userPhone']   
        print(userPhone)    
        if otp == session['otp']:
            print("otp matched")
            dbAdmin.connectToDb()
            dbAdmin.isClientAlreadyRegistered(userPhone)
            return jsonify({"ok":"success"})
        else:
            print("otp not matching")
            return jsonify({"Notok":"success"})

#some method that generates my otp
#def otp_generationMethod():
    ###code

這是我的燒瓶代碼。 我從我的反應應用程序訪問這兩條路線。 每次當我從我的會話中從燒瓶中獲取 requestOTP() 之后的 pod_verifyOTP() 方法變空時。 我為這個問題搜索了很多參考資料,但無法解決這個問題。 我應該如何維護這個會話?

我是這樣做的:我對上述代碼所做的更改如下:我導入了flask_session

from flask_session import Session

指定的會話類型為“文件系統”

SESSION_TYPE = 'filesystem'

然后將應用程序添加到 session 中,就像將其添加到 CORS 中一樣

SESSION_TYPE = 'filesystem'
app.config.from_object(__name__)
Session(app)
CORS(app)

我得到了想要的輸出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM