2011-02-24 26 views
15

這是一種在Yahoo!上重新發布的問題。論壇。這只是我更頻繁地提到StackOverflow ...Yahoo!移動設備的OAuth登錄屏幕

我的問題如下所示:而雅虎! OAuth http://developer.yahoo.com/oauth/被描述爲隨時​​可用於移動電話,它不會像這樣出現。

我試圖實現示例應用程序並使用Yahoo! PHP SDK與Yahoo!連接 使用網絡瀏覽器,它很好,很容易。 但是訪問Yahoo!我的測試手機(諾基亞6300)上的request_auth頁面(http://developer.yahoo.com/oauth/guide/oauth-userauth.html)呈現無法接受:我無法看到登錄框,無法讀取信息,爲什麼我的登錄需要和所有。我只看到一個頁面邊框和一些文本片段(「Yahoo!」,「Hel」(如幫助中...)等)。

是否有一些參數強制雅虎!顯示手機優化頁面? 我做的那一刻重定向用戶到這個地址: https://api.login.yahoo.com/oauth/v2/request_auth

順便說一句:如果我使用Opera Mini的 - 這很好地渲染頁面,雖然ommiting我的網站信息(這是要求登錄)。 只是我不能強制所有用戶使用Opera或其他東西。

在此先感謝您的幫助。

+0

你知道嗎? – 2012-01-07 15:26:26

+1

@NickSiderakis - 不,我承認,我沒有。 我已經遷移到新的API之後 - 稍微改變了一些東西,儘管我仍然能夠重現這種行爲,並且沒有任何來自Yahoo!的響應。工作人員,就我而言。 – 2012-01-10 09:54:35

回答

1

Yahoo!毫無疑問,用戶代理嗅探算法決定了構成移動瀏覽器的內容。很明顯,Opera Mini觸發了正確的行爲。我懷疑您使用的諾基亞模式中的本地瀏覽器不在列表中,或者它正在模擬桌面瀏覽器用戶代理。不幸的是,我認爲你必須說服雅虎!將您的諾基亞6300視爲移動設備。

+0

我認爲OperaMini可能會轉換頁面本身。據我所知,有一些渲染錯誤使用它。 – 2012-04-20 10:14:24

+0

我見過Facebook也這樣做。 :'( – nmr 2013-05-16 23:44:42

0

也許修改用戶代理以使Yahoo!認爲瀏覽器是Opera mini?

+0

我怎麼能讓我所有的客戶都這麼做? 有成千上萬的數千個不同的設備... 它應該是_雅虎!_調用參數,我認爲... – 2012-05-22 07:56:27

4

我一直在尋找解決這一整天,最終偶然發現了這一點:http://pastebin.com/8tDnrfLc

以下重要的一點轉載:

var authPageURL = "https://api.login.yahoo.com/oauth/v2/request_auth?oauth_token=" + oauthToken; 
var yahooMobileLoginUrl = "https://login.yahoo.com/m?&.src=oauth&.lang=en-us&.intl=us&.done=" + authPageURL; 

基本上你將用戶引導到移動AUTH頁面,並給它是一個完成時的網址。該網址應該是原始https://api.login.yahoo.com/oauth/v2/request_auth?oauth_token= ... url。

適合我!

+0

這實際上是新的OAuth 2.0版本有一個用於web登錄的移動版本,然而,OP正在談論OAuth 1.0a,它似乎沒有網頁移動頁面,不幸的是OAuth 2.0與一些雅虎API不兼容(例如YQL )。 – 2014-08-04 20:01:31

+0

Nvm,我剛剛用OAuth 1.0a測試了你的技術,它的工作原理非常巧妙!豎起大拇指。 – 2014-08-05 00:28:15

+0

謝謝,這是一個很大的幫助。雅虎應該感到尷尬的是,這種攻擊甚至是必要的。它仍然不是一個很好的用戶體驗,因爲登錄後接下來的批准頁面未針對移動設備正確格式化。 – 2015-05-15 16:37:56