ionic5 + angular10 + cordova 第三方登录 (facebook)

APP第三方登录

最近复习angular,整理了一下之前的笔记,做的第三方登录,当时也是研究好久,记录下

1. facebook登录

前期准备 :

1.1需要翻墙,在facebook官网注册一个账号https://www.facebook.com/

1.2使用注册的facebook账号登录facebook developer 成为开发者 https://developers.facebook.com/

1.3 点击myapps 创建一个app

 因为是做登录,所以选的是consumer

接下来的操作根据自己的需求,填写文档,最后获取到自己需要的facebook id

开发:

需要用到的插件  ionic-native/facebook

$ ionic cordova plugin add cordova-plugin-facebook-connect --variable APP_ID="123456789" --variable APP_NAME="myApplication"
$ npm install @ionic-native/facebook

想要查看别的版本可以去npm插件市场看 链接在这npm

安装的时候 APP_ID和APP_NAME这两个参数,需要用到上面授权的时候生成的的facebook id 和 应用的名称 否则使用facebook登录的时候授权会失败

 --variable APP_ID="123456789" --variable APP_NAME="myApplication"

PS:这里需要注意下两个问题:

1. 最新版本的facebook插件,和cordova版本有些不兼容,导致打不了apk包,cordova版本太低要升级版本。

2. cordova版本过高,会导致有些版本比较落后的安卓机,打开app的时候回白屏,iOS打开会黑屏,cordova版本需要向下兼容低版本手机

解决cordova版本兼容问题:

1. 安装 globalthis 插件 

2. 在 polyfills.ts 文件中引入

import 'globalthis/auto';

 代码部分:

引入插件

import {Facebook, FacebookLoginResponse} from '@ionic-native/facebook/ngx';
// 校验登录并获取token
 getAccessToken() {
    return new Promise((resolve, reject) => {
       this.facebook.getLoginStatus().then((res: any) => { // 获取登录状态
          if (['connected', 'not_authorized'].includes(res.status)) { // 退出登录
             this.facebook.logout().then((res: any) => {
                  this.login().then((res: any) => {
                      resolve(res)
                   })
              })
           } else {
              this.login().then((res: any) => {
                 resolve(res)
              })
           }

         }).catch(e => {
             reject(e)
         })
     })
  }

  // 登录
    login() {
        return new Promise((resolve, reject) => {
            this.facebook.login(['public_profile', 'email'])
                .then((res: FacebookLoginResponse) => {
                    resolve(res.authResponse)
                })
                .catch(e => {
                    if (e.errorCode == 4201) return
                    this.bt.fadeInTips(JSON.stringify(e))  //封装的toast组件,将报错信息弹窗出来
                });
        })
    }

通过login 返回的数据,再进行操作,一般会用到的都是 accessToken 和userId

到这里就完成facebook第三方登录了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值