【问题标题】:How to get current authenticated user id using Vuejs and Django Rest...?如何使用 Vuejs 和 Django Rest 获取当前经过身份验证的用户 ID ...?
【发布时间】:2021-01-03 11:07:27
【问题描述】:

我使用 Vuejs 作为我的前端,我只想从 Django Rest 获取当前登录用户的 ID 并显示它。我该怎么做?

序列化器

class CustomerSerializer(serializers.ModelSerializer):



 class Meta:
     model = Customer
     fields = '__all__'

查看

class CustomerRetrieveView(generics.RetrieveAPIView):
    queryset = Customer.objects.all()
    serializer_class = CustomerSerializer


class CustomerUpdateView(generics.UpdateAPIView):
    queryset = Customer.objects.all()
    serializer_class = CreateCustomerSerializer
    permission_class = permissions.IsAuthenticatedOrReadOnly


class CustomerCreateView(generics.CreateAPIView):
    queryset = Customer.objects.all()
    serializer_class = CreateCustomerSerializer


class CustomerListView(generics.ListAPIView):
    queryset = Customer.objects.all()
    serializer_class = CustomerSerializer

网址

path('customers/<int:pk>', views.CustomerRetrieveView.as_view()),
    path('customers/update/<int:pk>', views.CustomerUpdateView.as_view()),
    path('customers/all', views.CustomerListView.as_view()),
    path('customers/new', views.CustomerCreateView.as_view()),

脚本vue

update(event) {
     event.preventDefault();

     this.axios
    .post(`http://127.0.0.1:8000/api/v1/customers/new`, {'user': **???**, 'phone': this.phone })
    .then(response => {console.log(response) ;this.$router.push('/') })
    .catch(err => { console.error(err) })
   }

【问题讨论】:

  • 您可以在用户登录后存储 JWT 令牌,并将其存储在前端部分的 cookie 和缓存中。而已。在您的后端部分,当用户尝试在那个时间做某事时,您可以检查验证是否为 is_authenticated。
  • 如果您还有货,请随时与我的Skype联系:live:.cid.7143e40b271722c1

标签: django vue.js django-rest-framework


【解决方案1】:

一种适用于所有身份验证方法的简单方法是创建一个小型的 APIView 只返回当前用户的 ID:request.user.id。您的前端会为此视图发出 GET 请求。

【讨论】:

猜你喜欢
  • 2019-03-13
  • 2019-06-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-28
  • 2020-11-01
  • 1970-01-01
相关资源
最近更新 更多