java编写,其它语言同思路

接收客户端请求参数

@Data
public class SnapChatUserinfo {public String externalId;public String accessToken;
}

验证请求思路

    //请求地址private final static String API_URL = "https://kit.snapchat.com/v1/me";//json参数String parm="{\"query\":\"{me{displayName bitmoji{avatar} externalId}}\" }";//header参数 身份验证httpPost.setHeader("Authorization","Bearer "+snapChatUserinfo.getAccessToken());httpPost.setHeader("Accept-Encoding", "application/json;charset=utf-8");//结果处理 比较客户端传入的externalId 和 接口请求 externalId是否相等JSONObject data = JSONObject.parseObject(resp).getJSONObject("data");JSONObject me=data.getJSONObject("me");String externalId=me.getString("externalId");if(externalId.equals(snapChatUserinfo.getExternalId())){return true;}elsereturn false;

java工具类


public class SnapChatLogin {protected static Logger logger= LoggerFactory.getLogger(SnapChatLogin.class);private final static String API_URL = "https://kit.snapchat.com/v1/me";//接口请求地址public static Boolean check(SnapChatUserinfo snapChatUserinfo){//json请求参数String parm="{\"query\":\"{me{displayName bitmoji{avatar} externalId}}\" }";CloseableHttpClient httpclient = HttpClients.createDefault();Boolean result=false;try {RequestConfig requestConfig = RequestConfig.custom().setConnectTimeout(5000).setConnectionRequestTimeout(1000).setSocketTimeout(5000).build();
//代理
//            HttpHost proxy = new HttpHost("127.0.0.1", 7890);
//            RequestConfig requestConfig = RequestConfig.custom()
//                    .setConnectTimeout(5000).setConnectionRequestTimeout(1000)
//                    .setSocketTimeout(5000)
//                    .setProxy(proxy).build();HttpPost httpPost = new HttpPost(API_URL);httpPost.setConfig(requestConfig);StringEntity stringEntity = new StringEntity(parm);httpPost.setEntity(stringEntity);httpPost.setHeader("Authorization","Bearer "+snapChatUserinfo.getAccessToken());httpPost.setHeader("Accept-Encoding", "application/json;charset=utf-8");CloseableHttpResponse response = httpclient.execute(httpPost);try {HttpEntity entity = response.getEntity();if (response.getStatusLine().getStatusCode() == 200) {String resp = EntityUtils.toString(entity);logger.info("snapchat result:"+resp);JSONObject data = JSONObject.parseObject(resp).getJSONObject("data");JSONObject me=data.getJSONObject("me");String externalId=me.getString("externalId");if(externalId.equals(snapChatUserinfo.getExternalId())){return true;}elsereturn false;} else {result=false;}}catch (Exception ex){logger.error(ex.getMessage());}finally {response.close();}} catch (ClientProtocolException e) {logger.error("[异常] :", e.getMessage());} catch (IOException e) {logger.error("[异常] :", e.getMessage());} finally {try {httpclient.close();} catch (IOException e) {logger.error("[httpclient 关闭异常] : ", e.getMessage());}}return result;}
}

snapchat第三方登录回验(服务器端)相关推荐

  1. 第三方登录(单点登录)

    一.什么是第三方登录 是指用户可以不在本项目中输入密码,而直接通过第三方的验证,成功登录本项目. 本文将以QQ登录为例进行详解第三方登录的过程. 二.实现QQ登录 1.准备工作 接入QQ登录前,网站需 ...

  2. Cookie + Session登录-Token登录-SSO 单点登录-OAuth 第三方登录

    文章目录 1.Cookie + Session 登录 2. Cookie + Session 存在的问题 3.Token 登录认证 1. Token 机制实现流程 2. Token 机制的特点 3. ...

  3. (0013)iOS 开发之集成友盟第三方登录

    第三方登录的原理和流程 用户采用第三方登录的时候,用户会发送哪些信息到我的后台,后台会进行哪些比对操作?首次使用第三方登录和再次使用第三方登录时验证有哪些不同,后台如何保存用户的登录信息尼? 对于用户 ...

  4. 第三方登录(QQ登录)开发流程详解

    一.准备工作 接入QQ登录前,网站需首先进行申请,获得对应的appid与appkey,以保证后续流程中可正确对网站与用户进行验证与授权. 申请appid和appkey的用途 appid :应用的唯一标 ...

  5. Java实现Google第三方登录

    其实所有的第三方登录都是基于OAuth协议的,大多数平台都支持OAuth2.0,只有Twitter的是基于OAuth1.0来做的.所以只要弄明白一个,其他的什么qq.微信.微博的第三方登录也都一样.上 ...

  6. 第三方登录如何给前台返回token_如何设计优雅的第三方账号登录?

    # 前言 在互联网应用中,我们构建一个网站或APP,如果没有用户,那就没有价值.所以,如何吸引用户注册和登录,是一个重要问题,而这就涉及到账号体系了. 在应用构建初期,用户量较少,那么自建系统的账号体 ...

  7. php中qq授权登录,ThinkPHP利用QQ互联实现网站第三方登录(QQ登录)

    接入QQ互联平台后,我们就可以让用户通过QQ帐号登录来登陆我们的网站,这样减少了注册的繁琐,可以更快 .更便捷的为了我带来更多的用户,下面我们一一起来看下如何通过QQ互联来实现第三方登录. ####申 ...

  8. php实现第三方邮箱登录_JavaScript实现第三方登录网站原理在这呢

    点关注,不迷路,每天更新大量前端资料 前端实现第三方登录之OAuth2.0协议 OAuth 2.0 规定了四种获得令牌的流程.我们可以选择最适合自己的那一种,向第三方应用颁发令牌.下面就是这四种授权方 ...

  9. mysql用户登录和第三方登录_mysql 用户表结构设计,第三方登录

    说起用户表,大概是每个应用/网站立项动工(码农们)考虑的第一件事情.用户表结构的设计,算是整个后台架构的基石.如果基石不稳,待到后面需求跟进了发现不能应付,回过头来反复修改用户表,要大大小小作改动的地 ...

  10. 第三方登录mysql表_浅谈数据库用户表结构设计,第三方登录

    说起用户表,大概是每个应用/网站立项动工(码农们)考虑的第一件事情.用户表结构的设计,算是整个后台架构的基石.如果基石不稳,待到后面需求跟进了发现不能应付,回过头来反复修改用户表,要大大小小作改动的地 ...

最新文章

  1. 语言生成不自闭迷宫_4招教你分清自闭症、多动症、发育迟缓、抑郁症的区别...
  2. POJ_2001_Shortest Prefixes
  3. 洛谷P2671 求和 [数论]
  4. Go-Web框架-Beego架构(二)
  5. Java性能调优之让程序“飞”起来-Java 代码优化
  6. 编程错题本——解析OpenWnn(1)命名问题
  7. 彻底卸载2345系列
  8. 离散数学——主析取范式与主合取范式原理探究
  9. Oracle项目管理系统之合同台账
  10. PLSQL Developer 没有64位版本 + 找不到 msvcr71.dll
  11. atk-hc05 蓝牙
  12. 读书寄语之体现人生智慧的9个字
  13. linux命令整理(三)
  14. 彻底理解vue的钩子函数,vue的生命周期理解,什么是vue的生命周期,钩子函数
  15. Ruby erb模板文件生成html网页的示例
  16. 多媒体——音频——利用MediaRecorder录制音频
  17. Canvas学习:绘制箭头
  18. python基本算法合集(14)——计算从1加到100之和
  19. box-sizing:border-box 解释
  20. 完美解决电脑麦克风没声音的问题

热门文章

  1. WordPress二次元博客主题模板-Sakurairo v2.5.1.1
  2. mysql脏写_图解脏写、脏读、不可重复读、幻读
  3. Spring Cloud 入门到进阶 - 01 Eureka 服务实例的健康自检 (下)
  4. HTML网页中显示图片(相对路径 绝对路径)
  5. iptables防火墙规则
  6. 云电脑有显卡吗?云电脑怎么做画面处理?
  7. Android 类似360 系统启动时间提示
  8. 随手练——小米OJ 高弗雷勋爵
  9. 计算机网络cs144之lab0
  10. java实现定时自动打卡脚本_android 定时自动上班手机打卡签到实例