首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从React读取Cookie (后端使用FastAPI + fastapi-jwt-auth)

从React读取Cookie是指在React前端应用中获取浏览器中存储的Cookie信息。Cookie是一种在客户端存储数据的机制,用于跟踪用户会话、存储用户偏好设置等。

要从React中读取Cookie,可以使用JavaScript的document.cookie属性来访问当前页面的Cookie。以下是一个示例代码:

代码语言:txt
复制
const cookieValue = document.cookie
  .split('; ')
  .find(row => row.startsWith('cookieName='))
  .split('=')[1];

上述代码中,我们首先使用split('; ')将所有的Cookie分割成一个数组,然后使用find方法找到以"cookieName="开头的那一行,最后使用split('=')将该行分割成键值对,并取得值。

在后端使用FastAPI + fastapi-jwt-auth时,可以通过设置Cookie的方式将用户的身份信息传递给前端。在FastAPI中,可以使用Response类的set_cookie方法来设置Cookie。以下是一个示例代码:

代码语言:txt
复制
from fastapi import FastAPI, Response
from fastapi_jwt_auth import AuthJWT

app = FastAPI()
authjwt = AuthJWT()

@app.post("/login")
def login(response: Response, authjwt: AuthJWT):
    # 在此处进行用户身份验证,验证通过后生成JWT令牌
    access_token = authjwt.create_access_token(identity=user_id)
    response.set_cookie(key="access_token", value=access_token, httponly=True)
    return {"message": "Login successful"}

上述代码中,我们通过调用response.set_cookie方法来设置名为"access_token"的Cookie,并将生成的JWT令牌作为值传递给前端。设置httponly=True可以防止JavaScript代码直接访问该Cookie,提高安全性。

在React中读取该Cookie的代码示例如下:

代码语言:txt
复制
const cookieValue = document.cookie
  .split('; ')
  .find(row => row.startsWith('access_token='))
  .split('=')[1];

上述代码中,我们通过查找名为"access_token"的Cookie来获取JWT令牌的值。

推荐的腾讯云相关产品:腾讯云云服务器(ECS)、腾讯云对象存储(COS)、腾讯云数据库(TencentDB)等。您可以访问腾讯云官网(https://cloud.tencent.com/)了解更多产品信息和文档。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • AntDesign Pro + .NET Core 实现基于JWT的登录认证

    很多同学说AgileConfig的UI实在是太丑了。我想想也是的,本来这个项目是我自己使用的,一开始甚至连UI都没有,全靠手动在数据库里修改数据。后来加上了UI也是使用了老掉牙的bootstrap3做为基础样式。前台框架也是使用了angularjs,同样是老掉牙的东西。过年期间终于下决心翻新AgileConfig的前端UI。最后选择的前端UI框架为AntDesign Pro + React。至于为啥选Ant-Design Pro是因为他好看,而且流行,选择React是因为VUE跟Angular我都略知一二,干脆趁此机会学一学React为何物,为何这么流行。 登录的认证方案为JWT,其实本人对JWT不太感冒(请看这里《我们真的需要jwt吗?》),无奈大家都喜欢,那我也只能随大流。 其实基于ant-design pro的界面我已经翻的差不多了,因为它支持mock数据,所以我一行后台代码都没修改,已经把界面快些完了。从现在开始要真正的跟后端代码进行联调了。那么我们先从登录开始吧。先看看后端asp.net core方面会如何进行修改。

    01
    领券