示例#1
0
def register(request):
    """
    Register - registers user to the server. Input should be in the format:
    {"username": "******", "password": "******"}
    """

    serializer = CreateUserSerializer(data=request.data)
    logger.info("Request Data: {}".format(request.data))
    if serializer.is_valid():
        serializer.save()
        data={
            'grant_type': 'password',
            'username': request.data['username'],
            'password': request.data['password'],
            'client_id': CLIENT_ID,
            'client_secret': CLIENT_SECRET,
        }
        http_request = convert_to_http_request(request, data)
        token_view = TokenView()
        view_response = token_view.post(request=http_request)
        logger.info("Register Response: {}".format(view_response.content))
        return view_response

    logger.info("Serializer Errors: {}".format(serializer.errors))
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
示例#2
0
def refresh_token(request):
    """
    Get refresh-token for long-term access:
    {"refresh_token": "<token>"}
    """

    data={
        'grant_type': 'refresh_token',
        'refresh_token': request.data['refresh_token'],
        'client_id': CLIENT_ID,
        'client_secret': CLIENT_SECRET,
    }
    http_request = convert_to_http_request(request, data)
    token_view = TokenView()
    view_response = token_view.post(request=http_request)
    logger.info("Refresh Token Response: {}".format(view_response.content))
    return view_response
示例#3
0
def token(request):
    """
    Login - get tokens with username and password. Input should be in the format:
    {"username": "******", "password": "******"}
    """

    data={
        'grant_type': 'password',
        'username': request.data['username'],
        'password': request.data['password'],
        'client_id': CLIENT_ID,
        'client_secret': CLIENT_SECRET,
    }
    http_request = convert_to_http_request(request, data)
    token_view = TokenView()
    view_response = token_view.post(request=http_request)
    logger.info("Login Response: {}".format(view_response.content))
    return view_response