views.py 854 Bytes
from common.mixins import GenericView
from rest_framework_jwt.views import ObtainJSONWebToken
from common import response

# Create your views here.


class LoginView(ObtainJSONWebToken, GenericView):

    def post(self, request, *args, **kwargs):
        res = super(LoginView, self).post(request, *args, **kwargs)
        self.running_log.info('[users.login] username: %s' % request.data.get('username'))

        if res.status_code == 400:
            raise self.invalid_params(msg="用户名或密码错误")
        serializer = self.get_serializer(data=request.data)
        serializer.is_valid()
        user = serializer.object.get('user')
        user_id = user.id
        data = {
            'user_id': user_id,
            'user_name': user.username,
            'token': res.data.get('token'),
        }
        return response.ok(data=data)