oAuth 认证与授权
Jul 20, 2017 pm 02:49 PM一、什么是OAuth协议
OAuth(开放授权)是一个开放标准。
允许第三方网站在用户授权的前提下访问在用户在服务商那里存储的各种信息。
而这种授权无需将用户提供用户名和密码提供给该第三方网站。
OAuth允许用户提供一个令牌给第三方网站,一个令牌对应一个特定的第三方网站,同时该令牌只能在特定的时间内访问特定的资源。
二、OAuth的原理和授权流程
OAuth的认证和授权的过程中涉及的三方包括:
服务商:用户使用服务的提供方,一般用来存消息、储照片、视频、联系人、文件等(比如Twitter、Sina微波等)。
用 户:服务商的用户
第三方:通常是网站,该网站想要访问用户存储在服务商那里的信息。
比如某个提供照片打印服务的网站,用户想在那里打印自己存在服务商那里的网络相册。
在认证过程之前,第三方需要先向服务商申请第三方服务的唯一标识。
OAuth认证和授权的过程如下:
1、用户访问第三方网站网站,想对用户存放在服务商的某些资源进行操作。
2、第三方网站向服务商请求一个临时令牌。
3、服务商验证第三方网站的身份后,授予一个临时令牌。
4、第三方网站获得临时令牌后,将用户导向至服务商的授权页面请求用户授权,然后这个过程中将临时令牌和第三方网站的返回地址发送给服务商。
5、用户在服务商的授权页面上输入自己的用户名和密码,授权第三方网站访问所相应的资源。
6、授权成功后,服务商将用户导向第三方网站的返回地址。
7、第三方网站根据临时令牌从服务商那里获取访问令牌。
8、服务商根据令牌和用户的授权情况授予第三方网站访问令牌。
9、第三方网站使用获取到的访问令牌访问存放在服务商的对应的用户资源。
三、目前支持OAuth的网站有哪些?
t.sina.com.cn
t.qq.com
t.sohu.com
t.163.com
www.douban.com
www.twitter.com
www.facebook.com
Google Buzz
springboot 封装了oauth2的协议.里面有两个比较常用的接口.
1. 获取token
接口: /oauth/token?
参数: (grant_type是写死的,其它的两个自定义)
grant_type=password
username=development@cybergate-tech.com
password=oQd-BfT-cer-7LP
完整的样例:http://localhost:9000/oauth/token?grant_type=password&username=development@cybergate-tech.com&password=oQd-BfT-cer-7LP
返回结果样例:
{ "access_token": "beeaa54e-8391-4de0-8ba6-ce145b3fb812", "token_type": "bearer", "refresh_token": "8129769a-d804-46c7-856a-3bacd409b650", "expires_in": 3599, "scope": "read write" }
2. 刷新token
接口:http://localhost:9000/oauth/token?
参数:(refresh_token是根据1中的来定的.其它参数是写死的)
client_id=dashboard
client_secret=secret
grant_type=refresh_token
refresh_token=43dca105-627e-4f50-86e8-0c22c2f3abe9
样例: http://localhost:9000/oauth/token?client_id=dashboard&client_secret=secret&grant_type=refresh_token&refresh_token=43dca105-627e-4f50-86e8-0c22c2f3abe9
返回结果
{ "access_token": "0135c92b-12ab-4af9-88f4-97ef85115e71", "token_type": "bearer", "refresh_token": "75d209b5-a30d-43a8-abcd-850e7fb62e76", "expires_in": 3599, "scope": "read write" }
Atas ialah kandungan terperinci oAuth 认证与授权. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

OAuth dalam PHP: Mencipta Pelayan Kebenaran JWT

PHP dan OAuth: Melaksanakan Integrasi Log Masuk Microsoft

Cara melakukan penyepaduan Google Drive menggunakan PHP dan OAuth

Apakah perbezaan antara pensijilan akaun rasmi WeChat dan bukan pensijilan?

Kaedah dan pelaksanaan pengesahan OAuth2 dalam PHP

Menggunakan Spring Security OAuth2 untuk pengesahan dalam pembangunan API Java

Cara menggunakan PHP dan OAuth untuk penyepaduan log masuk QQ

Menggunakan PHP untuk melaksanakan kebenaran dan pengesahan pihak ketiga berdasarkan OAuth2
