OAuth2.0 初识

OAuth 2.0

授权登录,第三方登录非常常见。比如登录掘金的时候可以使用qq直接登录。
这其中就是用了OAuth2.0协议。
我们来了解最常使用的2种方式

授权码形式

我们以使用qq登录CSDN社区来作为例子

  1. 当我们点击第三方授权登录按钮经常跳转到一个新的界面,

    https://graph.qq.com/oauth2.0/show?
    which=Login&
    display=pc&
    client_id=100270989&
    response_type=code&
    redirect_uri=https%3A%2F%2Fpassport.csdn.net%2Faccount%2Flogin%3FpcAuthType%3Dqq%26state%3Dtest
    

    观察这个第三方登录的网址发现有这些标志信息,动作发起者设备类型,动作类型是登录,client_id是csdn实现跟qq申请的csdn的标识与其一块被申请的还有一个secret,就相当于csdn在qq申请了一个账号userName就是clien_id,password就是secret,response_type = code说明它使用的是授权码的形式,redirect_uri是用户授权或者拒绝以后跳转的目标网页。如果用户授权了就会将授权码返还给csdn的网页,注意我们现在是在qq的页面。
    当用户授权后将授权码返还给CSDN网页,CSDN后端会将拿到的授权码以及,自己申请的cliend_id,secret一起去向qq申请令牌,一般qq确认以后会返还给csdn后端一个access_token以及一个refresh_token,access_token用来向QQ请求数据,refresh_token用来刷新access_token。

密码式

如果用户比较信任csdn可以直接输入自己的qq账号密码然后,csdn拿着qq的账户密码去向qq请求令牌。

原文地址:https://www.cnblogs.com/FCY-LearningNotes/p/14799794.html