2016-02-16 36 views
0

我的API目前由Django的OAuth的工具包OAuth2TokenAuthentication保護,所以它可以驗證一個包含訪問令牌在以下幾個方面API請求:Django Rest Framework API如何從請求中提取access_token?

  1. 作爲查詢參數?access_token=xxxx
  2. 在頭
  3. Authorization: Bearer xxxx

雖然我可以在我的API視圖中進行硬編碼以試圖從這兩個位置獲取訪問令牌,但是有沒有一種規範的方式來獲取令牌?

回答

0

我通過內部OAuth2TokenAuthentication代碼挖出,並借它變成我的API查看:

class IntrospectView(APIView): 
    """ 
    An API view that introspect a given token 
    """ 
    serializer_class = TokenIntrospectSerializer 
    authentication_classes = [] 
    permission_classes = [] 

    def get(self, request, *args, **kwargs): 
     oauthlib_core = get_oauthlib_core() 
     valid, r = oauthlib_core.verify_request(request, scopes=[]) 
     if not valid: 
      raise APIException('Invalid token') 
     return Response(TokenIntrospectSerializer(r.access_token).data) 
相關問題