[英]How do I use Google's token from AccountManager in my web app? (Rails with omniauth-google-oauth2)
[英]On Google App Engine, can I relate a Google OAuth 2 Token and a SACSID token I got using Android's AccountManager?
我正在編寫一個Google App Engine應用程序以及一個CLI客戶端,一個Android客戶端和一個Javascript客戶端。 此應用程序的目的是允許用戶通過CLI或Javascript客戶端控制安裝了Android客戶端的Android手機。
身份驗證起着至關重要的作用,因為錯誤可能允許惡意用戶控制其他人的手機。
Android客戶端是編寫和工作的。 它使用此方法對用戶進行身份驗證。 基本上,這給了我一個所謂的SACSID令牌,我可以存儲在cookie中。 設置此cookie后,App Engine會識別我的用戶。 然后,服務器應用程序可以調用UserService以獲取要調用getUserId()的用戶。 getUserId()返回一個標識我的用戶的不透明字符串。 到現在為止還挺好。
現在我正在編寫JS和CLI客戶端。 由於CLI客戶端沒有顯示CAPTCHA或打開瀏覽器的可靠方法,我認為它需要使用Device API (“客戶端登錄”不是一個選項)。 此API需要使用OAuth 2進行身份驗證。 此外,我希望JS客戶端訪問用戶的聯系人,這似乎也表明OAuth 2適合。
如果我的用戶使用OAuth 2進行身份驗證,我是否會以某種方式將此Google OAuth 2令牌轉換為Android客戶端連接時獲得的相同opaque字符串? 如果沒有,我可以修改我的Android應用程序,以便它使用OAuth而不是Sacsid令牌嗎?
更具體地說,我看到有三件事可以解決我的問題:
與第三種可能解決方案類似的東西是從OAuth和SACSID令牌中獲取用戶的電子郵件地址,並將其用作用戶ID。 這對我來說看起來有點笨拙:
改為使用終點:
https://developers.google.com/appengine/docs/java/endpoints/
他們使用oauth2,它們易於實現並且支持android IOS和Web。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.