[英]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.