簡體   English   中英

如何使用相同的后端(django)api cookie 到前端(vuejs)?

[英]How to use same backend (django) api cookie to frontend(vuejs)?

在前端與后端處理 cookie 時,我感到困惑。

我在后端生成了一個 cookie 作為

class JWTAuthentication(BaseAuthentication):
    def authenticate(self, request):
        token = request.COOKIES.get('jwt')

        if not token:
            return None
        try:
            payload = jwt.decode(token, settings.SECRET_KEY, algorithms=['HS256'])
        except jwt.ExpiredSignatureError:
            raise exceptions.AuthenticationFailed('unauthenticated')
        user = get_user_model().objects.filter(id=payload['id']).first()
        if user is None:
            raise exceptions.AuthenticationFailed("Unauthenticated")
        return (user, None)

當我在前端 vuejs 中使用 login 時,會通過 api 生成一個 cookie,該 cookie 也是前端添加的並標記為 httpOnly 。 我想使用相同的 cookie 而不在前端創建新的。

在前端,當我 console.log document.cookie生成的 cookie 不可用時,雖然它顯示生成的 cookie,但同時在后端當我訪問 api 並查看console.log(document.cookie)它在那里可用。

即使在前端,我如何通過 vuejs/javascript 通過document.cookie訪問該 cookie,以便我可以在前端進行身份驗證和全局保護。

謝謝你的幫忙。

我想我已經找到了答案。 為了啟用與后端到前端相同的 cookie,我必須在后端設置 cookie 並將響應設置為 httpOnly False 時查看 views.py。

response.set_cookie(key='jwt', value=token, httponly=False)

現在,我也可以在前端使用 document.cookie。

暫無
暫無

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

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