求大神告知 OAuth2 refresh token 的理解以及 phonegap 用户登录的流程 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
myc0210
V2EX    程序员

求大神告知 OAuth2 refresh token 的理解以及 phonegap 用户登录的流程

  •  
  •   myc0210 2015-03-22 15:44:33 +08:00 6954 次点击
    这是一个创建于 3906 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我要做phonegap的应用。。。但是用户登录这块我始终搞不清。首先用户输入用户名和密码。然后去后端验证。。后端发回一个access token。然后本地存储这个access token。然后用户就可以一直登入进应用里。。。这是最简单的一个验证流程。但是如果access token被人拿走了。。。那么他就等于拥有你的用户账号。。。所以一般来说access token都是有过期时间的。。。生命周期短。。。但是没有办法一直让用户重复输入用户名和密码。。。这样refresh token的东西就出来了。这是一个生命周期长的token他的作用是一旦access token过期可以用它来重新获取access token。。但是这里就出现了一个问题。。。google的验证是用refresh token重新获取access token的时候 client id 和 client secret也是需要提供的。。。可是对于phonegap的应用来讲。。。如果这些都本地保存。。。那么他们都有可能和access token一样被人盗走。。。既然是这样= =那是不是对于phonegap的应用来说。。。这些步骤都没有任何意义?。。。我有点头晕。。请大家指点一下。。。谢谢 顺带。。。我的应用也不是提供api服务的= =我真的有必要用oauth2的东西吗。。。感觉我好想走错了方向。。。事实上我只是要phonegap 验证用户罢了。。。求好方法。。。

    5 条回复    2015-03-23 00:48:00 +08:00
    icanfork
        1
    icanfork  
       2015-03-22 16:40:19 +08:00 via Android
    这排版,句号不是这么用的
    puncsky
        2
    puncsky  
       2015-03-22 16:57:34 +08:00
    OAuth2 没有看上去那么简单,我不是特别的懂,但是可以说两句。

    本质上来讲,**传统的 Login with Username/Password and create a stateful session with Cookies 的机制并不完美,它并没有考虑到 Client 可能是不可完全信任的**:

    1. 无法安全地处理好 Clients 的授权粒度(Authorization with granularity for clients)的问题。
    2. Clients 会知道用户的 username/password

    而**OAuth 2.0 解决了对 Client 的信任问题**

    1. User/Client/Authority 不同层级上的不同组合,达到更有粒度地控制对资源的访问
    2. username/password 与 client 的分离: App 本身并不需要 username/password。用户能够取消某一 App 的权限而不影响其他 App , 用户改变 password 不会影响到App。

    OAuth2 还有其他很tricky的地方比如如何防 CSRF。

    在这里,我觉得 client id , client secret,access token,等等一系列被盗了也没关系,因为你仍旧需要 用户输入 username/password,而且他们是有时效性的,bear token expired 后需要新的授权,仍旧需要重新输入。
    myc0210
        3
    myc0210  
    OP
       2015-03-22 17:27:34 +08:00
    @belin520 不好意思 那不是句号。。。我习惯打什么都加这个。。。
    myc0210
        4
    myc0210  
    OP
       2015-03-22 17:32:11 +08:00
    @puncsky 噢!谢谢。。从你的回复我发现我好想搞错了什么= =因为我本身不需要提供服务。只是单纯自己的一个App,所以我压根也不需要Oauth2,是吗?如果用户的access token(不会expire的版本)丢了。。。那我也不需要管因为那是用户自己被黑了= =我可以这样理解我APP的需求嘛。最多我可以帮用户reset一个access token如果他被黑了。这样足够了?
    jasonworg
        5
    jasonworg  
       2015-03-23 00:48:00 +08:00 via Android
    去看看这篇文章,应该对你有着帮助。
    http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1069 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 22ms UTC 17:32 PVG 01:32 LAX 09:32 JFK 12:32
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86