在项目中我们经常会用到第三方登录,但是每个第三方都有自己的api,hellojs解决了这一个难题,上手很简单,它把国际上的一些登录api都封装在了一起,但是必须要注意里面的一些坑,代码片段注释文章粗体请仔细阅读。

具体可按照官网的步骤,这里就不多介绍了,也可参考别人的范例,点击前往,我这里只阐述核心代码:

第一步init(每个授权应用都有对应的一个id,这里redirect_uri是回调的成功返回页面):

hello.init({facebook: loginId.facebook,twitter: loginId.twitter,google: loginId.google},{ redirect_uri: "/login" });

第二步就是调用登录,也是比较重要的一步,我们这里登录需要第三方的access_token和用户的openid

//params是登录需要的参数 response_type 请求成功的相应数据    scope调用api返回的范围
//params = { response_type: "token id_token", scope: "openid email" }; //google
//params = { scope: "email publish" }; //facebook
//params = { response_type: "token id_token", scope: "openid email" }; //twitter
hello('facebook').login(params).then(function(res) {//'facebook'登录,该字段可以换成你想要某个第三方应用登录的字段alert('You are signed in to Facebook');//res.authResponse.access_token即为后台所需要的token//res.authResponse.id_token   google登录所需要的token
}, function(e) {alert('Signin error: ' + e.error.message);//一般出错均为开发者平台没有配好设置
});//除了token如需校验id,就要调用api,查询个人信息获取id
hello(s).api("me").then(function(json) {
//json.id   即为所需要的openId,hellojs封装的时候只是把openid换了一个名而已
//json.id_str   twitter比较特殊,我们这里它取得是id_str的值
})

1调用是很简单的,要绝对确保配置正确,否则会有错误的弹窗(init的id不匹配,回调的url页面不正确,权限没开启等等原因都会引起以上错误)

2params参数的传递也是非常重要的,因为直接login成功以后的返回参数可能不能满足你所需要的 点击查看配置参数

response_type   简单的说就是登录成功的相应数据类型

scope:是后期调用个人api需要的数据

大坑-----------如上图代码,我们的后台需要拿id和token进行校验(一定要和后台仔细调试沟通,因为第三方有多个类型的token,不确定你要的就是那一个),google登录response_type多传了一个id_token,登录成功的数据就会多一个id_token的字段,它也有access_token,注意千万不要传错了,否则可能一直校验不通过。。。。

大坑-----------如上图代码,在拿用户id的时候,twitter拿的是id_str,并非id,但是这两个id极其相似,我们之前也是没有区分出来,网页跟app数据对比的时候才找到原因。

所有的第三方登录都是让你建一个应用,然后配置你自己的项目,以及登录成功之后回调地址什么的,只是要

注意获取个人信息google要获取api服务,twitter也比较特殊,这两个坑也是你成功登录之后取字段的时候要注意的,其他调不起来第三方或者吊起之后回调页面不对,请在对应的开发者平台仔细检查,这时候只可能是配的不对,不会是代码问题,需要注意你如果是vue开发,url中的#是无法进行回调的

踩坑-helloJs实现google、facebook、twitter等第三方登录相关推荐

  1. hellojs实现google+facebook登陆

    hellojs实现google+facebook登陆 传送门:hellojs in npm

  2. php 微信第三方登录demo,第三方登录 - 快速接入微信、QQ、微博等第三方登录方式 – 基于ThinkPHP和Bootstrap的极速后台开发框架...

    此插件基于FastAdmin和Thinkphp5开发的第三方登录插件,可用于对接微.微博.QQ等第三方登录,目前CMS中的小程序账号登录绑定就是基于此插件开发,在使用CMS中的小程序登录功能之前请务必 ...

  3. 谷粒商城笔记+踩坑(17)——【认证模块】登录,用户名密码登录+微博社交登录+SpringSession+xxl-sso单点登录

    导航: 谷粒商城笔记+踩坑汇总篇 目录 5. 用户名密码登录 5.1[认证模块]登录业务 5.1.1 模型类,接收用户名密码 5.1.2 feign客户端新增登录功能 5.1.3 LoginContr ...

  4. 谷粒商城笔记+踩坑(19)——订单模块构建、登录拦截器

    导航: 谷粒商城笔记+踩坑汇总篇 目录 1.页面环境搭建 1.1 动静分离 1.2 hosts添加域名映射 1.3 配置网关和nacos 1.4 引导类开启注册发现和feign客户端 1.5 thym ...

  5. 一个Github项目搞定微信、QQ、支付宝等第三方登录

    今日推荐 推荐 7 个牛哄哄 Spring Cloud 实战项目 推荐一个非常火爆的电商开源项目! 推荐两个项目! 第三方登录是目前非常常用的登录方式,引入第三方登录的方式可以大大的降低开发的成本,同 ...

  6. SpringCloud微服务实战——搭建企业级开发框架(四十一):扩展JustAuth+SpringSecurity+Vue实现多租户系统微信扫码、钉钉扫码等第三方登录

      前面我们详细介绍了SSO.OAuth2的定义和实现原理,也举例说明了如何在微服务框架中使用spring-security-oauth2实现单点登录授权服务器和单点登录客户端.目前很多平台都提供了单 ...

  7. IOS-海外版授权分享推送统计 Google FaceBook Twitter Instagram

    目录 备注 Google Google分享 Google推送 FaceBook FaceBook分享 Twitter Twitter分享 Instagram Instagram分享 SDK下载 UIW ...

  8. 分享google+facebook+twitter(Eclipse)

    最近做游戏分享功能,遇到了这3大平台的分享,网上的介绍好多,但也不全,没有做到很详细的分享图片,文字,链接的介绍,所以我结合了一下,自己封装了3大平台的分享. 一,google+分享 不需要申请,直接 ...

  9. 关于使用QQ、新浪微博、腾讯微博等第三方登录网站的开发过程(一)

    (一). 实现QQ登录自己开发的网站 首先需要在http://connect.qq.com/申请一个网站应用的 APP ID 和APP KEY.申请流程如下: 1. 登录QQ互联之后,注册成为开发者, ...

最新文章

  1. 提供推荐——协作型过滤
  2. cas单点登录原理碎碎念
  3. 【C/C++】等分或指定行数把txt文档拆分成多份
  4. 面向抽象编程(模拟Spring的简单实现)
  5. CentOS之命令方式安装向日葵与内网穿透
  6. 微信公众平台开发(十二) 发送客服消息
  7. 什么是小规模纳税人、小型微利企业、小微企业
  8. ts封装,H264和aac 封装成为ts,并生成m3u8
  9. 点、线、三角形(C++)
  10. 如何设置开机启动程序
  11. 怎么选择Tomcat对应的JDK版本
  12. sudo修改文件夹名字_linux
  13. Java期末考试程序设计—井字棋
  14. cad指北针lisp_用CAD里的LISP画图,题目如图片,编写一程序,可在任意位置任意方向绘制指定大小的指北针。...
  15. javascript动态构建函数
  16. 微众java面试_微众面试经验
  17. 彩灯控制器课程设计vhdl_(EDA)基于VHDL八路彩灯控制器设计说明书.doc
  18. 8188gu驱动和su realtek_Realtek全系列官方网卡驱动
  19. 关于电脑BIOS解密,如何解密问题?
  20. 【C生万物】 指针篇 (初级)

热门文章

  1. 怎样让您的电脑待机耗电等于零?
  2. SSM综合复习之MyBatis
  3. tableau 集动作_Tableau训练营:7天,每天30分钟,零基础get数据可视化基本姿势
  4. 在济南,少儿国画到底要怎么学?
  5. 怎么把太大的ppt文件压缩变小
  6. 小渔夫 | 一万多的椅子照样畅销全球,它是怎么做到的?
  7. 科大奥瑞物理实验——傅里叶光学
  8. 计算机辅助设计论文结论,计算机辅助设计在平面设计中存在的问题论文
  9. 零基础入门学习Python 011列表:一个打了激素的数组2
  10. Ubuntu 16.04 编译Android 6.0系统源码