首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Python服务器连接到棱角应用程序?

如何将Python服务器连接到棱角应用程序?
EN

Stack Overflow用户
提问于 2021-05-25 11:14:44
回答 1查看 186关注 0票数 0

我已经启动并运行了python服务器(更准确地说,是Flask),它正在正确地连接到我的CAS服务器,重定向到CAS登录,并在登录时返回正确的用户数据。这是来自烧瓶服务器的相关代码:

代码语言:javascript
复制
app.secret_key = "SOMESECRETKEY"

cas_client = CASClient(
    version=3,
    service_url="http://localhost:5000/login?next=%2Fprofile",
    server_url='https://django-cas-ng-demo-server.herokuapp.com/cas/'

)

@app.route("/profile")
def profile(method=["GET"]):
    if "username" in session:
        jawt = jwt.encode(session["user_attributes"], app.secret_key, algorithm="HS256")
    return redirect("http://localhost:4200/?accessToken=" + jawt)

数据通过GET方法重定向返回到角页(见上面的代码)。我不想通过GET方法发送accessToken,而是希望将它存储在localStorage中。如果不首先将其作为GET参数发送,我如何才能从python中做到这一点呢?

EN

回答 1

Stack Overflow用户

发布于 2021-05-27 22:06:00

理想情况下,无论哪个路由实现登录功能,都会返回令牌,但是如果不可能,您就可以为此创建一个特定的路由,并将其保存在localStorage中:

代码语言:javascript
复制
from flask import jsonify

@app.route("/token")
def token(method=["GET"]):
    if "username" not in session:
        abort(403)
    token = jwt.encode(session["user_attributes"], app.secret_key, algorithm="HS256")
    return jsonify(token=token)

然后创建另一条返回配置文件详细信息的路径:

代码语言:javascript
复制
import requests
from flask import jsonify, request

@app.route("/profile")
def profile(method=["GET"]):
    token = get_token_from_authorization_header(request)
    qs = {"accessToken": token}
    resp = requests.get("http://localhost:4200", params=qs)
    if not resp.ok:
        abort(403)
    return resp.json()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67686826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档