基本上我們需要一個解決方案(基於PHP或集成可能),使用戶能夠使用憑據(雙因素身份驗證)登錄到我們的門戶網站,然後應該自動/靜默登錄到我們的谷歌應用程序域的特定用戶?我們在這裏有什麼選擇?我們是否應該使用某種形式的SSO/SAML聯合,或使用Google OAuth2 API等自動執行登錄過程?谷歌應用程序 - 自動登錄域用戶
1
A
回答
0
您可以使用SAML2,但這是一個巨大的努力。如果您已經使用SAML2來登錄用戶,我建議將您的PHP應用程序與SAML2身份提供程序集成。
使用OAuth2進行登錄過程要簡單得多。 It is documented here,附帶PHP示例。
基本上你需要將用戶重定向到URL這樣的:
https://accounts.google.com/o/oauth2/auth?
client_id=424911365001.apps.googleusercontent.com&
response_type=code&
scope=openid%20email&
redirect_uri=https://yourapp/oauth2callback&
state=security_token%3D138r5719ru3e1%26url%3Dhttps://yourapp/pagewheretheusermustbesentback&
openid.realm=yourdomain.com&
hd=yourdomain.com
的state
參數是文檔中詳細介紹,它可提供爲您的應用重定向URL知道在哪裏可以發送用戶時他的身份驗證以及您應用必須檢查的安全令牌,以確保沒有人欺騙用戶登錄。
您必須通過Google Cloud Console生成client_id
參數。首先創建一個項目,然後爲您的應用程序生成「Web Application」類型的證書。注意提供正確的重定向uri。
當用戶接受認證時,他被重定向到https://yourapp/oauth2callback
,用code
參數檢索用戶的信息,包括電子郵件。這是通過一個POST請求完成:
POST /o/oauth2/token HTTP/1.1
Host: accounts.google.com
Content-Type: application/x-www-form-urlencoded
code=the_code_you_got_when_the_user_was_redirected
client_id=424911365001.apps.googleusercontent.com&
client_secret=yourclientsecret&
redirect_uri=https://yourapp/oauth2callback&
grant_type=authorization_code
的迴應將是這樣的:
{"iss":"accounts.google.com",
"at_hash":"HK6E_P6Dh8Y93mRNtsDB1Q",
"email_verified":"true",
"sub":"10769150350006150715113082367",
"azp":"1234987819200.apps.googleusercontent.com",
"email":"[email protected]",
"aud":"1234987819200.apps.googleusercontent.com",
"iat":1353601026,
"exp":1353604926 }
現在你有用戶的電子郵件,將其存儲在會話,你是好去!
請注意,此方法將向用戶顯示同意書。如果您要讓知情同意書消失,請在安全>高級>管理OAuth客戶端訪問中將您的客戶端ID添加到Google Apps控制面板中,其範圍爲email
和profile
。
相關問題
- 1. 如何使用谷歌自動登錄當用戶kill應用程序
- 2. 谷歌加登錄android應用程序
- 3. 谷歌應用程序登錄文件
- 4. 通過在Android應用程序谷歌登錄驗證用戶
- 5. 使用谷歌認證登錄燒瓶應用程序的自定義域
- 6. 如何在谷歌應用程序中設置谷歌登錄?
- 7. django登錄谷歌應用帳戶
- 8. 通過谷歌帳戶登錄到iPhone應用程序。
- 9. 登錄谷歌帳戶選項在谷歌App Engine網絡應用程序
- 10. 完全自定義登錄谷歌應用程序引擎
- 11. 自定義登錄谷歌應用程序引擎
- 12. 谷歌登錄Android應用程式
- 13. 谷歌應用引擎用戶登錄谷歌帳戶不適用於java
- 14. 使用Windows窗體應用程序自動登錄用戶?
- 15. 谷歌+登錄iOS應用程序拒絕使用谷歌SDK v3.x
- 16. 讓用戶自動登錄谷歌文檔
- 17. 自動登錄應用程序
- 18. Web應用程序自動登錄
- 19. BlackBerry應用程序自動登錄
- 20. 自動登錄到Zoho應用程序
- 21. iPhone應用程序自動登錄
- 22. 谷歌應用程序腳本區域
- 23. Android應用程序:使用谷歌ID登錄?
- 24. 如何在iPhone應用程序中使用谷歌AdSense登錄?
- 25. 使用谷歌登錄Android應用程序和API之間
- 26. 以編程方式登錄谷歌應用程序引擎C#
- 27. 如何使用谷歌登錄信息登錄到我的應用程序
- 28. 自動登錄Facebook用戶到應用程序
- 29. 自動將用戶登錄到Laravel 4應用程序的URL
- 30. OSX應用程序商店和自動登錄應用程序
您是否試圖將用戶(自動)登錄到他們的Google帳戶(即登錄到您的門戶,然後登錄到他們的Gmail)?在這種情況下,SAML是唯一的選擇。 – nvnagr 2014-10-28 08:31:53