精华内容
下载资源
问答
  • 第三方登录

    2019-04-11 19:32:45
    第三方登录,我的理解就是基于用户在第三方平台上已有的账号和密码来快速完成己方应用的登录或者注册的功能。遵循一个Oauth2.0国际通用协议,允许用户在不提供用户名和密码的情况下,让第三方应用访问一些资源。使用...

    自己的登录:用户名、密码和验证码、密码用md5加密;
    第三方登录,我的理解就是基于用户在第三方平台上已有的账号和密码来快速完成己方应用的登录或者注册的功能。遵循一个Oauth2.0国际通用协议,允许用户在不提供用户名和密码的情况下,让第三方应用访问一些资源。使用第三方登录时,我们不需要用户再次输入用户名和密码,而是直接通过一个唯一openid来进行授权登录。对于普通用户来说,如果能用QQ、微信、百度、新浪这些平台的账号一键注册登录各个平台,无疑会方便很多。对于我们的应用来说,通过授权,借助QQ、微信这些用户量比较大的第三方平台增强自己的知名度也非常划算。

    我们的平台集成了QQ、微信、百度、新浪四种第三方登录方式,实现的方式都是类似的。首先去各大开放平台进行注册成为开发者,并创建应用,填写回调地址,获取appid(应用唯一的识别标志)、appkey(给应用分配的密钥),(名称可能不一样);下载api文档和sdk开发工具包;就可以开始开发了。

    首先在我们网站的登录页面根据api集成第三方登录的logo图标,并给与点击事件,当用户点击此图标时,发送请求,直接跳转到第三方平台的登录页面,第三方平台也会自动检测电脑是否有已登录的账号。登录成功以后,第三方平台会自动调用我们传递的回调地址,并传递回一个code参数;我们拿到code以后,再次调用第三方api提供的接口,传入code、app_id、appkey等参数,调用获取access_token的接口(接口调用,有第三方提供的sdk包,直接导入jar包,根据api文档,传递参数调用方法就可以,我们没必要太过关心第三方平台是用webservic接口或httpclient接口。)。获取到access_token同时,会获取到openid,拿到openid以后,就相当于拿到了登录授权。用openid去自己的用户表中查找是否与对应的用户,如果有,就直接查出用户信息,创建自己的session就可以了。如果没有,则新创建一个用户,把openid放进去。如果还需要其他信息,可以通过openid再次调用第三方平台的接口获取用户信息,如果用户信息还是不够,可以创建完用户以后再次跳转一个页面,让用户不全信息。信息补全以后,创建session,完成登录。这样一个第三方登录就完成了。

    展开全文
  • 今天我们来学习:码云(Gitee)授权第三方登录,相比之前 支付宝登录、腾讯QQ登录 以及 新浪微博登录 来说,相对于比较简单 一、准备工作 1、登录 码云官网 官网地址:https://gitee.com/ 注册、登录我们的...

    今天我们来学习:码云(Gitee)授权第三方登录,相比之前 支付宝登录腾讯QQ登录 以及 新浪微博登录 来说,相对于比较简单

    一、准备工作

    官网地址:https://gitee.com/
    

    注册、登录我们的账号

    • 2、创建应用
      设置
      在右上角菜单找到 “设置” 选项
      第三方应用
      在 “安全设置” 下找到 “第三方应用”
      我的应用
      点击 “创建应用” 开始创建第三方应用
      创建应用信息
      按照要求填写应用信息即可
      应用详情
    • 3、将应用信息保存到项目中
      应用配置信息
      由于我使用的是 SpringBoot 项目,我放在了 application.yml 文件中

    二、开始开发

    • 1、引入 Maven 依赖
    <!-- 网络请求 -->
    <dependency>
    	<groupId>org.apache.httpcomponents</groupId>
    	<artifactId>httpclient</artifactId>
    	<version>4.5.6</version>
    </dependency>
    <!-- alibaba的fastjson -->
    <dependency>
    	<groupId>com.alibaba</groupId>
    	<artifactId>fastjson</artifactId>
    	<version>1.2.51</version>
    </dependency>
    

    其余的依赖请自行加入

    • 2、在页面放置 “码云(Gitee)” 授权登录的 DOM 元素
    <a th:href="@{gitee/auth}" class="link" title="Gitee登录"><i class="iconfont icon-gitee"></i></a>
    

    这里使用的是阿里的 iconfont 图标

    三、接口类

    创建 “码云(Gitee)” 授权登录的 Controller,GiteeController.java

    • 1、从配置文件中获取 “码云(Gitee)” 配置信息
    /**
     * gitee授权中提供的 appid 和 appkey
     */
    @Value("${gitee.oauth.clientid}")
    public String CLIENTID;
    @Value("${gitee.oauth.clientsecret}")
    public String CLIENTSECRET;
    @Value("${gitee.oauth.callback}")
    public String URL;
    
    • 2、页面登录按钮点击后的接口
    /**
     * 请求授权页面
     */
    @GetMapping(value = "/auth")
    public String qqAuth(HttpSession session) {
        // 用于第三方应用防止CSRF攻击
        String uuid = UUID.randomUUID().toString().replaceAll("-", "");
        session.setAttribute("state", uuid);
    
        // Step1:获取Authorization Code
        String url = "https://gitee.com/oauth/authorize?response_type=code" +
                "&client_id=" + CLIENTID +
                "&redirect_uri=" + URLEncoder.encode(URL) +
                "&state=" + uuid +
                "&scope=user_info";
    
        return PasswordUtils.redirectTo(url);
    }
    

    接口文档中建议我们在授权登录时传入一个加密的数据防止被攻击,我们传入了UUID,最后重定向到授权页面
    授权页面

    • 3、当该用户点击“授权”按钮,同意授权后,就会回调到我们在应用中填写的回调地址里去
    /**
     * 授权回调
     */
    @GetMapping(value = "/callback")
    public String qqCallback(HttpServletRequest request) throws Exception {
        HttpSession session = request.getSession();
        // 得到Authorization Code
        String code = request.getParameter("code");
        // 我们放在地址中的状态码
        String state = request.getParameter("state");
        String uuid = (String) session.getAttribute("state");
    
        // 验证信息我们发送的状态码
        if (null != uuid) {
            // 状态码不正确,直接返回登录页面
            if (!uuid.equals(state)) {
                return PasswordUtils.redirectTo("/login");
            }
        }
    
        // Step2:通过Authorization Code获取Access Token
        String url = "https://gitee.com/oauth/token?grant_type=authorization_code" +
                "&client_id=" + CLIENTID +
                "&client_secret=" + CLIENTSECRET +
                "&code=" + code +
                "&redirect_uri=" + URL;
        JSONObject accessTokenJson = GiteeHttpClient.getAccessToken(url);
    
        // Step3: 获取用户信息
        url = "https://gitee.com/api/v5/user?access_token=" + accessTokenJson.get("access_token");
        JSONObject jsonObject = GiteeHttpClient.getUserInfo(url);
        /**
         * 获取到用户信息之后,就该写你自己的业务逻辑了
         */
        return PasswordUtils.redirectTo("/success");
    }
    

    四、网络请求方法

    上面回调方法中所用到的网络接口方法,我放在了 GiteeHttpClient.java 文件中,主要有两个方法

    • 1、网络接口
    /**
     * 获取Access Token
     * post
     */
    public static JSONObject getAccessToken(String url) throws IOException {
        HttpClient client = HttpClients.createDefault();
        HttpPost httpPost = new HttpPost(url);
        httpPost.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36");
        HttpResponse response = client.execute(httpPost);
        HttpEntity entity = response.getEntity();
        if (null != entity) {
            String result = EntityUtils.toString(entity, "UTF-8");
            return JSONObject.parseObject(result);
        }
        httpPost.releaseConnection();
        return null;
    }
    
    /**
     * 获取用户信息
     * get
     */
    public static JSONObject getUserInfo(String url) throws IOException {
        JSONObject jsonObject = null;
        CloseableHttpClient client = HttpClients.createDefault();
    
        HttpGet httpGet = new HttpGet(url);
        httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36");
        HttpResponse response = client.execute(httpGet);
        HttpEntity entity = response.getEntity();
    
        if (entity != null) {
            String result = EntityUtils.toString(entity, "UTF-8");
            jsonObject = JSONObject.parseObject(result);
        }
    
        httpGet.releaseConnection();
    
        return jsonObject;
    }
    

    分别就是使用 code 获取 token,在使用 token 获取 用户信息

    注意:我们需要在请求时加上请求头

    User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36
    

    最终我们获取到一个 JSON 对象,该对象包含了用户的信息,例如:id,name,email,phone 等等。

    https://gitee.com/api/v5/oauth_doc#/
    

    五、总结

    该授权认证过程符合 OAuth2 认证基本流程,流程如下:
    授权过程

    1、用户点击页面登录按钮,请求授权页面,用户在此页面登录账号并同意授权
    2、用户同意授权后,回调至我们项目中,首先验证 state 是否一致
    3、使用上一步拿到的 code 请求 access_token
    4、使用 access_token 请求 用户信息,完成授权登录过程

    下一篇:

    【第三方互联】十四、Github授权第三方登录

    如您在阅读中发现不足,欢迎留言!!!

    展开全文
  • 第三方平台系列文章,今天终于又开始更新了,今天继续学习微信(wechat)授权第三方登录 一、准备工作 1、申请微信公众测试号 由于我们是个人开发者,我们需要去注册申请一个微信公众平台的测试号 ...

    第三方平台系列文章,今天终于又开始更新了,今天继续学习微信(wechat)授权第三方登录

    一、准备工作

    1、申请微信公众测试号

    由于我们是个人开发者,我们需要去注册申请一个微信公众平台的测试号

    https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login
    

    微信公众平台
    我们使用微信扫码登录后,我们可以拿到 appID 和 appsecret

    测试号管理

    2、关注公众测试号

    测试号二维码

    3、配置回调域名

    在“网页服务”中找到“网页账号”,修改“网页授权获取用户基本信息”接口的回调域名

    修改接口信息
    授权回调页面域名
    注意:这里说的是,配置网页授权回调页面 域名,跟我们平常对接的第三方接口不一样,不用填写完整的回调地址,只是回调域名,回调地址在回调域名之下

    • 例如
      回调地址:http://www.baidu.com/wechat/back
      那么这里:baidu.com

    新手一般在这里容易弄混,配置完成,点击“确认”即可

    二、开始开发

    1、获取应用信息

    我们将获取到的 appID 和 appsecret 写在配置文件中,我这里是 SpringBoot 项目,我就放在 application.yml 文件中

    配置信息

    2、引入 maven 依赖

    <!-- 网络请求 -->
    <dependency>
    	<groupId>org.apache.httpcomponents</groupId>
    	<artifactId>httpclient</artifactId>
    	<version>4.5.6</version>
    </dependency>
    <!-- alibaba的fastjson -->
    <dependency>
    	<groupId>com.alibaba</groupId>
    	<artifactId>fastjson</artifactId>
    	<version>1.2.51</version>
    </dependency>
    

    这里我们需要用到网络请求,和 JSON 对象的转换,所以我引入了 httpclient 和 fastjson,其余依赖请自行引入

    3、从配置文件中获取 “wechat” 配置信息

    /**
     * 公众平台提供的 appid 和 appsecret
     */
    @Value("${wechat.oauth.appid}")
    public String APPID;
    @Value("${wechat.oauth.appsecret}")
    public String APPKEY;
    @Value("${wechat.oauth.callback}")
    public String URL;
    

    4、重定向到授权页面

    /**
     * 请求授权页面
     */
    @RequestMapping("/auth")
    public String token(HttpSession session) throws Exception {
        // 用于第三方应用防止CSRF攻击
        String uuid = UUID.randomUUID().toString().replaceAll("-", "");
        session.setAttribute("state", uuid);
    	// Step1:获取Authorization Code
        String url = "https://open.weixin.qq.com/connect/oauth2/authorize?" +
                "appid=" + APPID +
                "&redirect_uri=" + URLEncoder.encode(URL) +
                "&response_type=code" +
                "&scope=snsapi_userinfo" +
                "&state=" + uuid +
                "#wechat_redirect";
        return PasswordUtils.redirectTo(url);
    }
    
    • Step1 参数解释如下:
    参数 是否必须 说明
    appid 公众号的唯一标识
    redirect_uri 授权后重定向的回调链接地址, 请使用 urlEncode 对链接进行处理
    response_type 返回类型,请填写code
    scope 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且, 即使在未关注的情况下,只要用户授权,也能获取其信息 )
    state 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值,最多128字节
    #wechat_redirect 无论直接打开还是做页面302重定向时候,必须带此参数

    授权页面
    这时,我们访问,便会出现授权页面

    5、授权回调

    /**
     * 授权回调
     */
    @GetMapping(value = "/callback")
    public void callback(HttpServletRequest request) throws Exception {
        HttpSession session = request.getSession();
        // 得到Authorization Code
        String code = request.getParameter("code");
        // 我们放在地址中的状态码
        String state = request.getParameter("state");
        String uuid = (String) session.getAttribute("state");
    
        // 验证信息我们发送的状态码
        if (null != uuid) {
            // 状态码不正确,直接返回登录页面
            if (!uuid.equals(state)) {
                return PasswordUtils.redirectTo("/login");
            }
        }
    
        // Step2:通过Authorization Code获取Access Token
        String url = "https://api.weixin.qq.com/sns/oauth2/access_token?" +
                "appid=" + APPID +
                "&secret=" + APPKEY +
                "&code=" + code +
                "&grant_type=authorization_code";
        JSONObject resJson = HttpRequestUtils.httpRequestGet(url);
        if (null == resJson) {
            return PasswordUtils.redirectTo("/login");
        }
        String accessToken = resJson.getString("access_token");
        String openId = resJson.getString("openid");
        if (StringUtils.isBlank(accessToken) || StringUtils.isBlank(openId)) {
            return PasswordUtils.redirectTo("/login");
        }
    
        url = "https://api.weixin.qq.com/sns/userinfo?" +
                "access_token=" + accessToken +
                "&openid=" + openId +
                "&lang=zh_CN";
        // Step3: 获取微信用户信息
        resJson = HttpRequestUtils.httpRequestGet(url);
        /**
         * TODO 这时就该写自己的业务逻辑了
         */
    }
    
    • Step2 参数解释如下:
    参数 是否必须 说明
    appid 公众号的唯一标识
    secret 公众号的appsecret
    code 填写第一步获取的code参数
    grant_type 填写为authorization_code
    • Step3 参数解释如下:
    参数 是否必须 说明
    access_token 网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
    openid 用户的唯一标识
    lang 返回国家地区语言版本,zh_CN 简体,zh_TW 繁体,en 英语

    6、网络请求方法

    Step 2 和 Step 3 均为 GET 请求方式

    /**
     * GET 请求
     */
    public static JSONObject httpRequestGet(String url) throws IOException {
        CloseableHttpClient client = HttpClients.createDefault();
        HttpGet httpGet = new HttpGet(url);
        HttpResponse response = client.execute(httpGet);
        HttpEntity entity = response.getEntity();
        if (entity != null) {
            String result = EntityUtils.toString(entity, "UTF-8");
            return JSONObject.parseObject(result);
        }
        httpGet.releaseConnection();
        return null;
    }
    

    三、文档资料

    关于微信授权登录的文档地址如下:

    https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
    

    四、总结

    该授权认证过程符合 OAuth2 认证基本流程,对于应用而言,其流程由获取Authorization Code和通过Authorization Code获取Access Token这2步组成,如图所示:

    OAuth授权认证

    如您在阅读中发现不足,欢迎留言!!!

    展开全文
  • 第三方登录功能的实现

    万次阅读 多人点赞 2017-03-28 17:13:04
    为什么要使用第三方登录:一般稍微作为一个大点的项目,为了提高用户的群体都会做第三方登录(如:QQ,微信,新浪等) 在往下看之前先注册第三方网站的开发者账号,创建应用完成审核。 QQ : QQ开发者平台 微信: 微信...

    刚开始做的时候感觉高大上
    为什么要使用第三方登录:

    一般稍微作为一个大点的项目,为了提高用户的群体都会做第三方登录(如:QQ,微信,新浪等)
    

    在往下看之前先注册第三方网站的开发者账号,创建应用完成审核。

    1. QQ : QQ开发者平台
    2. 微信: 微信开发者平台
    3. 新浪: 新浪开放平台

    要实现第三方登录的功能首先要明白oauth2.0的认证原理,由于第三方登录的认证授权流程大致都是一样的,在这里我只讲QQ的登录授权流程:

    官网也有介绍:
    这里写链接内容

    其授权验证流程示意图如下:
    这里写图片描述

    1. client先访问:PC网站:https://graph.qq.com/oauth2.0/authorize
      参数有: response_type=code 固定
      client_id 申请应用时分配的id
      redirect_uri 回调的url 你自己网站的一个地址

    2. 通过第一步会返回 code码(注意:此code会在10分钟内过期)

    3. 通过Authorization Code获取Access Token(通过地址:https://graph.qq.com/oauth2.0/token?)
      此时参数有:
      grant_type
      client_id
      client_secret: 申请QQ登录成功后,分配给网站的appkey。
      code: 上一步返回的authorization code。
      redirect_uri

    4. 此刻你已经拿到了Access Token , 然后就是获取用户OpenID_OAuth2.0
      https://graph.qq.com/oauth2.0/me?access_token=获取到的Access Token
    5. 根据第4步你会拿到(openid): callback( {“client_id”:”YOUR_APPID”,”openid”:”YOUR_OPENID”} );
    6. 最后就是回去你的用户信息了:
      https://graph.qq.com/user/get_user_info?access_token=YOUR_ACCESS_TOKEN&oauth_consumer_key=YOUR_APP_ID&openid=YOUR_OPENID

    返回结果:

    {
    “ret”:0,
    “msg”:”“,
    “nickname”:”YOUR_NICK_NAME”,

    }
    下面直接看代码(控制层):

    /**
     * 
     * 首页
     * 
     * @author Administrator
     *
     */
    @Controller
    @RequestMapping("/qqLogin")
    public class HomePageController {
    
        @RequestMapping("/login")
        public String login(HttpServletRequest request, HttpServletResponse response, HttpSession session)
                throws IOException {
            try {
                AccessToken accessTokenObj = (new Oauth())
                        .getAccessTokenByRequest(request);
                String accessToken = null, openID = null;
                if (accessTokenObj.getAccessToken().equals("")) {
                    System.out.print("没有获取到响应参数");
                    return "error";
                } else {
                    accessToken = accessTokenObj.getAccessToken();
                    session.setAttribute("accessToken",
                            accessToken);
                    // 利用获取到的accessToken 去获取当前用的openid 
                    OpenID openIDObj = new OpenID(accessToken);
                    openID = openIDObj.getUserOpenID();
                    session.setAttribute("openID", openID);
                    return "success";
                }
            } catch (QQConnectException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
                return "error";
            }
        }
    
        @RequestMapping("/homePage")
        public String homePage(Model model) {
    
            return "index";
        }
    
        @RequestMapping("/inQQ")
        public void inQQ(Model model, HttpServletResponse response,
                HttpServletRequest request) {
            try {
                response.sendRedirect(new Oauth().getAuthorizeURL(request));
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (QQConnectException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    }
    

    视图层:

    <%@ page contentType="text/html;charset=UTF-8" language="java" %>
    <%-- <%@include file="/inc/taglib.jsp"%> --%>
    <body>
    <h2>Hello World!ss</h2>
    
        <a href="${pageContext.request.contextPath} /qqLogin/inQQ">请使用你的QQ账号登陆</a>
    
    </body>
    

    记得别忘了导包
    解开来见证奇迹的时刻到了:
    这里写图片描述
    这里写图片描述
    这里写图片描述

    至此结束!!!!!!!!
    

    有需要源码的留下qq邮箱

    展开全文
  • 【第三方互联】十四、Github授权第三方登录

    千次阅读 多人点赞 2020-04-08 20:44:41
    今天我们继续学习:Github授权第三方登录,前面我们已经学习了 码云(Gitee)授权第三方登录,Github授权第三方登录的实现过程其实和 码云(Gitee)授权第三方登录的实现过程类似,只是有一些细节需要注意,下面我们...
  • 我们创建了支付宝开放平台的网页&移动应用,审核通过后,我们需要拿到appid,支付宝公钥,私钥进项开发 一、添加应用信息至项目环境中 我们保存了 appid、应用私钥、支付宝公钥、支付宝回调地址等信息,这里...
  • 【第三方互联】三、腾讯QQ授权第三方登录

    万次阅读 多人点赞 2020-02-25 15:24:15
    当我们创建的 QQ 互联应用成功后,我们便可以开始使用该应用来实现 QQ 互联 一、获取 APP ID 和 APP Key 1、找到我的应用 ... 这样,我们就获取到了 APP ID 和 APP Key ...1、将 APP ID 、APP Key,以及该应用的信息放...
  • iOS开发之第三方登录微信-- 史上最全最新第三方登录微信方式实现  标签: iOS第三方登录微信登录第三方登录微信详解AF3.0 2016-06-20 14:52 10322人阅读 评论(30) 收藏 举报 本文章已收录于:  ...
  • 百度第三方登录 说起这个第三方登录,我想大家实在是再熟悉不过了。要做微信工作号的人用秀米,用135编辑器都会用到第三方登录;要玩游戏的同学,大大小小的游戏哪个不给设置个第三方登录?再说到平常的app,第三方...
  • 在我们常用的App中经常会看到分享与第三方登录的功能,可以说分享与第三方登录已经成为了各大APP的必备功能。对于产品运行与推广来说,分享与第三方登录不仅能加强用户粘性,增加流量及新用户,也能提升用户存、留...
  • 在我们常用的App中经常会看到分享与第三方登录的功能,可以说分享与第三方登录已经成为了各大APP的必备功能。对于产品运行与推广来说,分享与第三方登录不仅能加强用户粘性,增加流量及新用户,也能提升用户存、留...
  • gitee第三方登录

    千次阅读 2019-10-22 18:14:36
    在设置里面找到第三方应用,然后添加; 其他同github第三方登录
  • php实现第三方登录,百度登录例子 配置说明 1.1 php 版本5.3 1.2 IDE phpstorm9.0.2 实现过程 2.1前期准备 建议先阅读 oAuth2.0的相关资料 http://developer.baidu.com/wiki/index.php?title=docs/oauth,...
  • 第三方登录技术

    2018-01-29 14:28:16
    什么是第三方登录  所谓的第三方登录,是说基于用户在第三方平台上已有的账号和密码来快速完成己方应用的登录或者注册的功能。而这里的第三方平台,一般是已经拥有大量用户的平台,国外的比如Facebook,Twitter等...
  • 今天继续学习:百度(baidu)授权第三方登录 一、准备工作 1、登录 百度开发者中心 官网地址:https://developer.baidu.com/ 注册账号,登录官网 2、注册成为“百度开发者” 在页面底部找到“应用管理”,当然...
  • 第三方登录不得不说的一个优势:那就是本地注册和第三方注册的选择。虽然这是一个不能称之为问题的问题,其中的心理学不得不说:做为一个app的新用户,你有两个选择:1....2.第三方登录后,随机分配一个id
  • 什么是第三方登录

    千次阅读 2019-06-11 09:13:59
    1.什么是第三方登录 第三方登录是基于用户在第三方平台上已有的账号和密码来快速完成己方应用的登录或者注册的功能。而这里的第三方平台,一般是已经拥有大量用户的平台,国外的比如Facebook,Twitter等,国内的...
  • iOS 微信第三方登录 Demo

    热门讨论 2015-08-30 18:57:03
    iOS 微信第三方登录小Demo,有兴趣可以学习下。
  • Facebook第三方登录流程总结 2020-04-24阅读1.8K0 授权Facebook第三方登录流程 ...一些国际的软件/网站支持的比较多的第三方登录是Google第三方登录、Facebook第三方登录等。这里记录下Faceboo...
  • 第三方登录流程

    千次阅读 2016-08-19 21:36:28
    第三方登录流程
  • qq第三方登录

    千次阅读 2017-07-21 15:58:33
    同事搞了个qq第三方登录,学习下.  qq第三方登录(qq oAuth2.0),在oauth的协议的基础上实现的(新浪,wx等一些第三方登录都遵循这个原则),第三方分网站与移动应用  网站接入:总体流程 QQ登录OAuth2.0总体处理流程如下...
  • 第三方登录原理探究

    2017-05-03 08:46:18
    底层协议 流程梳理 第三方登录的实质 为什么使用第三方登录 第三方登录与本地登录的关联 第三方登录解除授权实践
  • 第三方登录(一)

    2015-07-16 00:32:18
    第三方登录

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,589
精华内容 5,435
关键字:

第三方登录