第三方登录原理

作者: senpaiLi | 来源:发表于2019-05-18 11:20 被阅读101次

    第三方登录已经是我们最常用的一种登录方式,有时我们会有疑惑,这东西实现原理是什么?为什么第三方授权之后,还要绑定手机号?如果不是为了用户登录更简洁,这个第三方的登录意义何在?

    我们今天来理一下。

    一、第三方登录的原理(oAuth认证和授权原理)

    1、OAuth的思路:
    OAuth在"客户端"与"服务提供商"之间,设置了一个授权层(authorization layer)。"客户端"不能直接登录"服务提供商",只能登录授权层,以此将用户与客户端区分开来。"客户端"登录授权层所用的令牌(token),与用户的密码不同。用户可以在登录的时候,指定授权层令牌的权限范围和有效期。

    "客户端"登录授权层以后,"服务提供商"根据令牌的权限范围和有效期,向"客户端"开放用户储存的资料。

    2、运行流程:


    OAuth 2.0的运行流程如下图,摘自RFC 6749
    (A)用户打开客户端以后,客户端要求用户给予授权。
    
    (B)用户同意给予客户端授权。
    
    (C)客户端使用上一步获得的授权,向认证服务器申请令牌。
    
    (D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。
    
    (E)客户端使用令牌,向资源服务器申请获取资源。
    
    (F)资源服务器确认令牌无误,同意向客户端开放资源。
    

    不难看出来,上面六个步骤之中,B是关键,即用户怎样才能给于客户端授权。有了这个授权以后,客户端就可以获取令牌,进而凭令牌获取资源。

    3、客户端授权模式:
    客户端必须得到用户的授权(authorization grant),才能获得令牌(access token)。OAuth 2.0定义了四种授权方式。

    授权码模式(authorization code)
    简化模式(implicit)
    密码模式(resource owner password credentials)
    客户端模式(client credentials)
    

    详见阮一峰的博客

    相关文章

      网友评论

        本文标题:第三方登录原理

        本文链接:https://www.haomeiwen.com/subject/ktpzaqtx.html