OAuth2 redirect_uri无法打开应用程序的授权页面

时间:2018-08-03 09:37:21

标签: django python-3.x oauth-2.0

我正在尝试在我的django项目中实现OAuth2。我是消费者方,我需要从提供商方获取“ 代码”。我的应用程序正在django中实现。

在我的产品/view.py中;

def auth_for_app(request):
    CLIENT_ID = "xxxxxx"
    CLIENT_SECRET = "xxxxxx"

    # In provider side, this redirect_uri is also saved #
    REDIRECT_URI = 'http://127.0.0.1/products/auth'
    AUTHORIZE_URL = "https://www.PROVIDER-WEBSITE.com/admin/user/auth"
    ACCESS_TOKEN_URL = "https://www.PROVIDER-WEBSITE.com/oauth/v2/token"

    if request.method == 'GET':
        if 'provider' in request.GET:

            # 1. Ask for an authorization code
            r = requests.get('{}?response_type=code&client_id={}&redirect_uri={}'.format(AUTHORIZE_URL, CLIENT_ID, REDIRECT_URI))

    return render (request, 'products/auth.html')

在我的产品/urls.py中

from django.urls import path
from django.views.generic.base import TemplateView

from . import views

app_name = 'products'
urlpatterns = [
    path('', views.IndexView.as_view(), name='base'),
    path('<int:pk>/', views.DetailView.as_view(), name='detail'),
    path('auth/', views.auth_for_app, name='auth_for_app'),
]

在相关的html文件(products / templates / products / example.html)中,我有一个用于此请求的按钮;

<form role="form" action="{% url 'products:auth_for_app' %}" method="GET">
  {{ provider_form.as_p }}
  <input type="submit" class="btn" value="Auth: App" name="provider">
</form>

我期望的是,当我单击“ 身份验证:应用”按钮时,我的应用程序应转到提供商的相关授权页面,以使用户批准或拒绝。之后,它将使用相关的 code 值将用户重定向到我的'http://127.0.0.1/products/auth'页面。

当我在 Postman 中尝试此过程时,该过程成功了(当然使用了postman的回调URL。我也应该在提供者的应用程序设置中使用postman的回调URL来更改redirect_uri)。 / p>

0 个答案:

没有答案