2012-08-30 125 views
4

我在Shopify應用程序上從舊版轉換爲oauth2身份驗證。現在,無論何時從商店管理頁面(我的應用程序 - >應用程序)訪問應用程序,它都會將我重定向到登錄頁面,而不是直接將應用程序登錄到應用程序中(就像以前一樣)。Shopify應用程序登錄問題

下面是finalize方法中的代碼。

if response = request.env['omniauth.auth'] 
    sess = ShopifyAPI::Session.new(params['shop'], response['credentials']['token']) 
    ShopifyAPI::Base.activate_session(sess) 
    session[:shopify] = sess 
    flash[:notice] = "Logged in" 
    redirect_to return_address 
    session[:return_to] = nil 
else 
    flash[:error] = "Could not log in to Shopify store." 
    redirect_to :action => 'index' 
end 

當用戶從商店的管理頁面也沒有request.env [「omniauth.auth」]在請求訪問的應用程序,被重定向到登錄頁面,在這裏,因爲它是不是這樣的時候,我們有傳統認證機制。

應用程序的網址是www.orderlyprint-staging.herokuapp.com。您可以將該應用安裝在測試商店中,並嘗試從測試商店的管理頁面登錄該應用。

+0

{「shop」=>「kohler-oberbrunner-and-reichert9767.myshopify.com」,「signature」=>「something」,「timestamp」=>「1346305711」,「controller」=>「login」 「action」=>「finalize」}這是當我從商店訪問應用程序時得到的參數 – Santosh

回答

6

對於最初使用Shopify App gem構建的Shopify應用程序,以及從Legacy切換到oAuth2身份驗證解決方案時,您需要將Shopify Admin鏈接指向authenticate動作而不是最終動作。所以,你需要:

轉到Shopify合作伙伴管理員

出版社編輯軟件詳情

更新「應用程序URL」,以在身份驗證動作點來代替。例如: www.orderlyprint-staging.herokuapp.com/login/authenticate

然後,這將提取由Shopify發送的shop參數,並執行oAuth身份驗證的初始步驟,然後重定向到finalize操作完成。然後這將自動登錄用戶,而不需要他們手動輸入他們的商店URL。

相關問題