示例#1
0
def oauth_view(request):
    oauth = OAuth(update_token=_update_token)
    oauth.register(name='dlfp')
    dlfp = oauth.create_client('dlfp')
    token = dlfp.authorize_access_token(request)
    resp = dlfp.get('me', token=token)
    profile = resp.json()
    login = profile['login']

    dbToken = OAuth2Token.objects.filter(username=login).first()
    if not dbToken:
        dbToken = OAuth2Token(
            name='dlfp',
            uuid=uuid.uuid4(),
            username=login,
        )

    dbToken.token_type = token['token_type']
    dbToken.access_token = token['access_token']
    dbToken.refresh_token = token['refresh_token']
    dbToken.expires_at = token['expires_at']

    dbToken.save()

    context = {'uuid': dbToken.uuid}
    return render(request, 'boardauth/oauth.html', context)
示例#2
0
def post_dlfp(request):
    user_uuid = request.COOKIES['uuid']
    oauth = OAuth(update_token=_update_token)
    oauth.register(name='dlfp')
    dlfp = oauth.create_client('dlfp')
    token = OAuth2Token.objects.filter(uuid=user_uuid).first()
    message = request.POST[
        'board[message]'] if 'board[message]' in request.POST else request.POST[
            'message']
    resp = dlfp.post('board',
                     json={'message': message},
                     token=token.to_token())

    return HttpResponse(resp)
示例#3
0
remote_app_name = settings.OAUTH2_REMOTE_APP_NAME

oauth.register(
    name=remote_app_name,
    client_id=settings.OAUTH2_CLIENT_ID,
    client_secret=settings.OAUTH2_CLIENT_SECRET,
    userinfo_endpoint=settings.OAUTH2_USERINFO_ENDPOINT,
    access_token_url=settings.OAUTH2_ACCESS_TOKEN_URL,
    access_token_params=settings.OAUTH2_ACCESS_TOKEN_PARAMS,
    authorize_url=settings.OAUTH2_AUTHORIZE_URL,
    authorize_params=settings.OAUTH2_AUTHORIZE_PARAMS,
    api_base_url=settings.OAUTH2_API_BASE_URL,
    client_kwargs=settings.OAUTH2_CLIENT_KWARGS,
)

myclient = oauth.create_client(settings.OAUTH2_REMOTE_APP_NAME)


class LoginView(View):
    def get(self, request):
        if request.user.is_authenticated:
            return HttpResponseRedirect(
                request.GET.get('next', settings.LOGIN_REDIRECT_URL))

        request.session['next'] = request.GET.get('next',
                                                  settings.LOGIN_REDIRECT_URL)

        redirect_uri = '{site_url}{callback_url}'.format(
            site_url=get_setting('site', 'global', 'siteurl'),
            callback_url=reverse('oauth2_auth'))
        auth_redirect = myclient.authorize_redirect(request, redirect_uri)
示例#4
0
def login(request):
    oauth = OAuth(update_token=_update_token)
    oauth.register(name='dlfp')
    dlfp = oauth.create_client('dlfp')
    redirect_uri = 'https://localhost:8443/boardauth/oauth'  # reverse('oauth')
    return dlfp.authorize_redirect(request, redirect_uri)