我已經看到關於此的其他問題(here,here和here),但我對任何解決方案都不滿意,所以我再次提出這個問題。我正在開發一個Web應用程序,它將利用來自多個提供商(Google,Facebook,Twitter,Yahoo)的OAuth進行身份驗證。我正在努力尋找適用於本地開發環境和生產環境的配置。在開發和生產環境中使用OAuth
我已經找到了解決方案,領先的是每個供應商中註冊多個應用程序,接受對每個不同的用戶密鑰和密碼:
「我的應用生產」 - 一個回調URI來http://www.myapp.com/callback
「我的應用程序開發」 - 一個回調URI來http://local.myapp.com/callback
添加一個條目到您的本地hosts文件指向local.myapp.com
到127.0.0.1
和s ome配置爲您的應用程序使用基於環境的適當的用戶密鑰,並且您很好去,對嗎?
但我的應用程序是responsive,我需要測試我的PC上運行的開發環境,來自多個其他設備,比如我的iPhone和iPad,兩者都不能解析開發回調URI。
比方說,我的網絡上已經有DNS服務器,並且能夠在那裏添加local.myapp.com
的條目,而不是我的本地主機文件,現在可以從網絡上的任何設備訪問我的開發實例。
但我的開發團隊都在同一個本地網絡上運行。現在local.myapp.com
指向每個人都有相同的IP。讓我們回到在每個開發人員的計算機上設置hosts文件,以便他們都可以在工作站內獨立工作。現在沒有人可以再次從他們的iPhone測試他們的開發實例。對於每個開發人員來說,向提供者註冊一個應用程序只是爲了他們可以指定一個唯一的回調URI似乎不是正確的答案。
正常情況下,當我用雜草解決了一個看似簡單的問題時,通常意味着我正在做一些根本性錯誤的事情。我是否缺少有關OAuth的內容,難道不打算這樣使用嗎?我很想完全放棄OAuth,只需要使用OpenID(不需要註冊應用程序,並且可以在應用程序中指定回調URI),但是隨後我在Facebook和Twitter上失去了兩位大牌手。我真的不需要用戶的任何數據,只要它可用就很好。有人能讓我回到OAuth嗎?
Is只是爲了測試正確嗎?爲什麼不將每個Web應用程序都視爲虛擬目錄? – codemonkeh
我並不真正遵循你所得到的。你能詳細說明嗎? – schmimd04
你有沒有找到解決方案?我正在爲完全相同的事情而苦苦掙扎。 oauth提供程序不允許在原始中使用通配符,所以我不能擁有'alice.dev.myapp.com'和'bob.dev.myapp.com',但是如果所有開發人員共享'dev.myapp.com',我不會不知道如何將平板電腦和手機指向正確的開發人員。爲每個開發人員創建一個oauth入口點似乎是唯一的方法。 – mczepiel