Ben (Şişe API ve Açısal)Flask CORS - yeniden yönlendirme()
Ben Tıkladığımda aşağıdaki hata almaya devam OAuth Twitter'da Kullanıcı işareti uygulayan am üzerinde hiçbir Erişim kontrol-izin-kökenli başlık mevcut twitter düğmesi ve bir pop up pencere ile oturum açılır:
XMLHttpRequest cannot load https://api.twitter.com/oauth/authenticate?oauth_token=r-euFwAAAAAAgJsmAAABTp8VCiE. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
Ben CORS'yi işlemek için piton-CORS paketleri kullanıyorum, ve zaten doğru çalışma instagram işareti var. Yanıtın bir yönlendirme olmakla ilgili olduğunu, ancak sorunu çözemediğine inanıyorum.
Benim şişe kodu şöyle:
app = Flask(__name__, static_url_path='', static_folder=client_path)
cors = CORS(app, allow_headers='Content-Type', CORS_SEND_WILDCARD=True)
app.config.from_object('config')
@app.route('/auth/twitter', methods=['POST','OPTIONS'])
@cross_origin(origins='*', send_wildcard=True)
#@crossdomain(origin='')
def twitter():
request_token_url = 'https://api.twitter.com/oauth/request_token'
access_token_url = 'https://api.twitter.com/oauth/access_token'
authenticate_url = 'https://api.twitter.com/oauth/authenticate'
# print request.headers
if request.args.get('oauth_token') and request.args.get('oauth_verifier'):
-- omitted for brevity --
else:
oauth = OAuth1(app.config['TWITTER_CONSUMER_KEY'],
client_secret=app.config['TWITTER_CONSUMER_SECRET'],
callback_uri=app.config['TWITTER_CALLBACK_URL'])
r = requests.post(request_token_url, auth=oauth)
oauth_token = dict(parse_qsl(r.text))
qs = urlencode(dict(oauth_token=oauth_token['oauth_token']))
return redirect(authenticate_url + '?' + qs)
Sana yayınlanan makalesinde sağlanan sizin repo çatallı:
Eğer bazı fikirler, ben Facebook ve Twitter için kimlik doğrulama akışının bu tür yapmayı bir blog makale yazdım istiyorum. Ancak istemci tarafında aynı hatayı al. 'XMLHttpRequest, https://api.twitter.com/oauth/authorize?oauth_token=FozjZwAAAAAAgJsmAAABTqljgg0 dosyasını yükleyemez. İstenen kaynağa Access-Control-Allow-Origin 'başlığı yok. Origin 'null' bu nedenle erişime izin verilmiyor. ' –
Olduğu gibi, istemci farklı bir etki alanının (Flask API) yetkilendirmesi/twitter sunucusuna bir posta isteği gönderiyor ama gönderiyor, sonra twitter yönlendirmesini döndürüyor. İstemci uygulamasındaki hata mesajına bakın –
Bana gösterdiğiniz hata, tarayıcının doğrudan Twitter API'sine bir istek göndermesini öneriyor, dolayısıyla ne söylediğinizle aynı fikirde değil. Hata mesajında URL https: //api.twitter.com/... olduğunu unutmayın. Eğitmenimdeki uygulama asla Ajax isteklerini doğrudan sağlayıcıya göndermektedir, tüm istekler Flask uygulamasından geçmektedir (ki bu da müşteri tarafında uygulama ile aynı alanda hizmet vermekteyim). – Miguel