【问题标题】:How to get the OAuth code from the redirect URI displayed in the browser using Django URLs如何使用 Django URL 从浏览器中显示的重定向 URI 获取 OAuth 代码
【发布时间】:2021-12-02 02:57:50
【问题描述】:

我正在将 Django 应用程序与 Docusign API 集成,我正在使用 OAuth2 grant_type="code" 进行授权,在将所有必需的参数传递给 /oauth/auth (https://account-d.docusign.com/oauth/auth?response_type=code&scope=signature&client_id=33f*******NNNNMNMc-b478-7593294fb3ba&redirect_uri=http://localhost:3000/sales/oauth/callback) 端点后,我得到了 Oauth 代码在浏览器中重定向 URI(http://localhost:3000/sales/oauth/callback),我想从我的 django 类视图中获取此代码,在该视图中我创建了一个路径到我的视图

urlpatterns = [
    path(
        "sales/oauth/callback",
        OAuthCallbackView.as_view(),
        name="OAuthCallbackView",
    ),
]

我的看法

class OAuthCallbackView(APIView):
    def get(self, request):
        access_code = request.GET["code"]

我想在这里获取验证码,因为重定向 URI 路径包含代码 (/sales/oauth/callback?code=12312232) 我无法点击上述 URL 路径

有没有办法在 Django 中获取 Oauth 代码

【问题讨论】:

    标签: python django oauth docusignapi


    【解决方案1】:

    这里有一些代码,我们会有这个代码(也可以在GitHub 中找到)

    def callback(request):
        """
        The final part of the user authorization using the OAuth
        """
        serializer = CallbackSerializer(data=request.data)
        serializer.is_valid(raise_exception=True)
    
        code = serializer.validated_data['code']
    
        try:
            auth_data = DsClient.callback(code)
        except ApiException:
            return redirect("jwt_auth")
    
        SessionData.set_auth_data(request.session, auth_data)
        return Response({"message": "Logged in with code grant"})
    

    【讨论】:

    • 感谢您的回复。我找不到我的查询的答案。我的要求是使用重定向 URI(上面提到的路径)来访问 Django 视图。当我们点击 URL 时,上面的代码似乎直接调用了该函数。
    • 好吧,不知道为什么这不起作用,我不知道如何使用重定向 URI 访问视图
    • 我也有同样的问题,不知何故,当我刷新包含code 的页面时它可以工作,这意味着自动刷新代码一次应该可以解决问题
    • Aditya,你在用 Django 吗?
    猜你喜欢
    • 2013-04-27
    • 1970-01-01
    • 2013-09-29
    • 2020-07-21
    • 1970-01-01
    • 2021-12-26
    • 1970-01-01
    • 2015-09-20
    • 2011-02-11
    相关资源
    最近更新 更多