• OAuth: : OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。
  • OAuth2.0 :对于用户相关的 OpenAPI(例如获取用户信息,动态同步,照片,日志,分享等),为了保护用户数据的安全和隐私,第三方网站访问用户数据前都需要显式的向用户征求授权。

授权流程图示:
image.png

接入步骤

以微博为例:

  1. 引导用户到微博的认证地址:https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI
  • client_id:微博网站接入提供的 APP KEY;
  • redirect_uri:认证后重定向的地址;
  1. 用户同意授权重定向到上面设置的地址并携带 code:http://www.gulimall.com/success?code=CODE
  2. 使用 code 请求微博提供的地址换取 access_token:https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE
  • client_id:APP KEY;
  • client_secret:APP SECRET;
  • redirect_uri:认证后重定向的地址 http://www.gulimall.com/success
  • code:第二步返回的 code 值;
  • 返回响应报文:
    1. {
    2. "access_token": "2.00pDpxyGd3J5bEef6b98778e0ZKsu4",
    3. "remind_in": "157679999",
    4. "expires_in": 157679999,
    5. "uid": "6397634785",
    6. "isRealName": "true"
    7. }
  1. 根据 access_token 可以获取微博提供的公共接口数据;

image.png

代码: Github guli-mall