[英]Stripe OAuth - redirect URL = “No route matches [GET] ”/oauth/callback"
[英]How to configure route for oauth callback
我正在使用寶石OAuth2與Google服務進行通信。 我不明白如何實現回調,該回調通過OAuth代碼接收響應以獲取訪問令牌。 當我在callback
方法中設置斷點時,它似乎永遠不會被調用。
這是我的代碼:
路線:
match '/oauth2/callback' => 'reports#callback'
實際重定向的網址:
http://localhost/oauth2/callback?code=111111
ReportsController:
def new
client = OAuth2::Client.new(ENV['GA_CLIENT_ID'], ENV['GA_SECRET_KEY'], {
:authorize_url => 'https://accounts.google.com/o/oauth2/auth',
:token_url => 'https://accounts.google.com/o/oauth2/token'
})
redirect_to client.auth_code.authorize_url({
:scope => 'https://www.googleapis.com/auth/analytics.readonly',
:redirect_uri => 'http://localhost/oauth2/callback',
:access_type => 'offline'
})
end
def callback
oauth_code = params[:code]
# Create access token with oauth_code
end
Google服務器正在嘗試訪問無效的URL http://localhost/oauth2/callback?code=111111
。
您需要一個域名才能使用OAuth之類的服務,因為Google服務器必須能夠通過互聯網找到您的計算機。
為了能夠在開發機器上執行此操作,您應該:
傳遞給Google的redirect_url必須與從客戶端瀏覽器看到的回調URL完全匹配。 在URL中使用本地主機沒有問題(關於DNS和NAT的fotanus句子是錯誤的)。 如果您在其他端口(例如8080)上運行容器,則必須:
在Google雲中指定網址: http://localhost:8080/oauth2/callback
在客戶端請求中指定相同的返回URL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.