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)
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)
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)
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)