当前位置: 首页 > news >正文

社交登陆OAuth2.0

QQ、微博、github 等网站的用户量非常大,别的网站为了
简化自我网站的登陆与注册逻辑,引入社交登陆功能;
步骤:

1)、用户点击 QQ 按钮

2)、引导跳转到 QQ 授权页

3)、用户主动点击授权,跳回之前网页。 

1、OAuth2.0 

 OAuth: OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储 在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们 数据的所有内容。

 OAuth2.0:对于用户相关的 OpenAPI(例如获取用户信息,动态同步,照片,日志,分 享等),为了保护用户数据的安全和隐私,第三方网站访问用户数据前都需要显式的向 用户征求授权。

 官方版流程:

 

(A)用户打开客户端以后,客户端要求用户给予授权。

(B)用户同意给予客户端授权。

(C)客户端使用上一步获得的授权,向认证服务器申请令牌。

(D)认证服务器对客户端进行认证以后,确认无误,同意发放令牌。

(E)客户端使用令牌,向资源服务器申请获取资源。

(F)资源服务器确认令牌无误,同意向客户端开放资源。 

2、微博登陆准备工作 

1、进入微博开放平台

 

2、登陆微博,进入微连接,选择网站接入 

3、选择立即接入 

4、创建自己的应用 

5、我们可以在开发阶段进行测试了 

 

 记住自己的 app key 和 app secret 我们一会儿用

6、进入高级信息,填写授权回调页的地址

 

7、添加测试账号(选做) 

8、进入文档,按照流程测试社交登陆 

 

3、微博登陆测试 

1、引导用户到如下地址

https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redi rect_uri=YOUR_REGISTERED_REDIRECT_URI

2、用户同意授权,页面跳转至 xxx/?code=CODE 

http://www.gulishop.com/success?code=fef987b3f9ad1169955840b467bfc661

3、使用返回的 code,换取 access token

https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_C LIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI &code=CODE

https://api.weibo.com/oauth2/access_token?client_id=4217011631&client_secret=98de9bad1b 633e42e01c46746e791047&grant_type=authorization_code&redirect_uri=http://www.gulishop. com/success&code=fef987b3f9ad1169955840b467bfc661 

注意,上面这个是 post 请求

{ "access_token": "2.00pDpxyGd3J5bEef6b98778e0ZKsu4",

"remind_in": "157679999",

"expires_in": 157679999,

"uid": "6397634785",

"isRealName": "true" }

 

4、使用 AccessToken 调用开发 API 获取用户信息 

至此微博登陆调试完成。

Oauth2.0;授权通过后,使用 code 换取 access_token,然后去访问任何开放 API

1)、code 用后即毁

2)、access_token 在几天内是一样的

3)、uid 永久固定

 

http://www.lryc.cn/news/3105.html

相关文章:

  • C++005-C++选择与分支2
  • IPFS 简介及概述
  • 初学者必读:讲解 VC 下如何正确的创建、管理及发布项目
  • 剑指offer(中等)
  • 微软发布会精华回顾:“台式电脑”抢了风头
  • CF1561C Deep Down Below 题解
  • 秒杀项目之服务调用分布式session
  • 聊聊什么是架构,你理解对了吗?
  • java多线程开发
  • 杂记7--opencv的ar码模块学习
  • [项目设计]高并发内存池
  • 28岁才转行软件测试,目前32了,我的一些经历跟感受
  • Python导入模块的3种方式
  • select 与 where、order by、limit 子句执行优先级比较
  • Linux内核并发与竞争-原子操作
  • Java笔记-泛型的使用
  • 特斯拉无人驾驶解读
  • 生物素-琥珀酰亚胺酯Biotin-NHS;CAS号:35013-72-0;可对溶液中的抗体,蛋白质和任何其他含伯胺的大分子进行简单有效的生物素标记。
  • Maven_第五章 核心概念
  • 【深度学习】人脸识别工程化落地
  • AOP面向切面编程思想。
  • 实验7-变治技术及动态规划初步
  • JVM垃圾回收机制GC理解
  • C++中的容器
  • 2023备战金三银四,Python自动化软件测试面试宝典合集(五)
  • SpringDI自动装配BeanSpring注解配置和Java配置类
  • 2月面经:真可惜...拿了小米的offer,字节却惨挂在三面
  • 磐云PY-B8 网页注入
  • 多传感器融合定位十-基于滤波的融合方法Ⅰ其二
  • Java集合面试题:HashMap源码分析