Re: [問題] 登入,Syncadapter,Token,Server

看板AndroidDev作者 (飛阿!)時間9年前 (2014/12/03 10:32), 編輯推噓1(1010)
留言11則, 1人參與, 最新討論串2/2 (看更多)
→ ginnyhuang:使用第三方平台登入,我是在user登入後取得該account的 05/13 15:36 → ginnyhuang:ID,使用這個ID當作user的帳號存入server的database, 05/13 15:37 → ginnyhuang:之後在app中user和server的溝通就以此帳號為憑依(也可 05/13 15:37 → ginnyhuang:以自行加入其他識別字串) 05/13 15:37 → ginnyhuang:因為我只有用到讓user可以快速登入,沒有需要使用社群 05/13 15:37 → ginnyhuang:互動,所以只是讓第三方平台幫你識別這個人是誰,不需 05/13 15:37 → ginnyhuang:要記錄token什麼的 05/13 15:38 → ginnyhuang:我記得和第三方的auth token也是有時效性的,不確定是 05/13 15:38 → ginnyhuang:每次重新登入他會更新還是多久更新一次 05/13 15:38 → ginnyhuang:auth token應該是給第三方程式登入但又不想讓該程式知 05/13 15:38 → ginnyhuang:道帳密而使用的流程?app和server是否也可以(需要)用, 05/13 15:40 → ginnyhuang:這我還真不太清楚XD(這部分沒研究,我是直接加密) 05/13 15:40 → ginnyhuang:看新聞FB似乎要推出個匿名登入...不知道新版情況如何, 05/13 15:40 → ginnyhuang:坐等api釋出囉@@ 希望以上資訊有幫到你~也許其他人有更 05/13 15:40 → ginnyhuang:更安全的做法? 05/13 15:41 → ginnyhuang:剛查到有關實作OAuth2"服務"的系列文,還不錯: 05/13 15:41 → ginnyhuang:http://ppt.cc/vO3Q 05/13 15:42 → ginnyhuang:或google: OAuth 2.0 筆記 05/13 15:44 感謝ginny大的回覆。 從推文了解,ginny 大是把 "login with google" 當作一個幫user省去打email & password的sign up的工具 想請問我這個從推文中理解的這個流程,是不是正確標準流程? login with google -> get username(gmail) -> register to AccountManager -> register username in OUR server -> server grants token -> use the token fetch protected data in our server 舉例來說: 1. emma 在我們的app 使用 login with google 2. app 獲得 emma 的 username (emma@gmail.com) & google token 根據scope不同,app可以用這個google token 跟 google 要其他資料 (不重要) 3. app 把 emma@gmail.com register 在 app 的 AccountManager 4. app 把這個account register在"我們的"server database 同時,"我們的" server 也 return 一個token' 5. 之後所有 app 對"我們的"server 要 protect 資料時,都要使用token' 如果這是標準流程,我有問題, 在步驟4,傳統登入流程,credential會帶 username + password 可是這個OAth是沒有帶password,這樣"我們的"server該如何認證這是emma? google document看很多次了,可是都只有說到該如何用google token要google資料 或是該怎麼把one-time authorization code pass給server 讓server可以跟google要資料 都沒有解釋到我的問題 請板上大大幫忙了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 76.195.58.29 ※ 文章網址: http://www.ptt.cc/bbs/AndroidDev/M.1417573938.A.6CB.html

12/04 02:49, , 1F
用 google access token 當作 credentials,
12/04 02:49, 1F

12/04 02:49, , 2F
scopes 只要有 "profile" 就可以了
12/04 02:49, 2F

12/04 02:50, , 4F
server 端拿手機傳上來的 token 去 get profile
12/04 02:50, 4F

12/04 02:50, , 5F
由 return 的 uid 驗證是否為 "emma"
12/04 02:50, 5F

12/04 02:50, , 6F

12/04 02:51, , 7F
剩下就兩個 error handling 要處理
12/04 02:51, 7F

12/04 02:51, , 8F
1. 如果手機傳給 server 的 token 已經過期
12/04 02:51, 8F

12/04 02:51, , 9F
應以適當 error code 讓 app 重新取得 google token
12/04 02:51, 9F

12/04 02:51, , 10F
2. 如果手機上的 google account 登出之後
12/04 02:51, 10F

12/04 02:52, , 11F
看是你的 app 要同時登出還是怎樣 handle
12/04 02:52, 11F
文章代碼(AID): #1KVdOoRB (AndroidDev)
文章代碼(AID): #1KVdOoRB (AndroidDev)