返回顶部
首页 > 资讯 > 前端开发 > VUE >怎么通过ASWebAuthenticationSession获取身份验证Code码
  • 538
分享到

怎么通过ASWebAuthenticationSession获取身份验证Code码

2024-04-02 19:04:59 538人浏览 安东尼
摘要

本篇内容介绍了“怎么通过ASWEBAuthenticationSession获取身份验证Code码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情

本篇内容介绍了“怎么通过ASWEBAuthenticationSession获取身份验证Code码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

1. 前言

项目中需要实现 GitHubGoogle、Apple 登录,实现第三方登录方案有 3 种:

  • 集成第三方一键登录

  • 分别集成 gitHub、Google、Apple 登录 SDK

  • 不集成 SDK 打开浏览器登录

今天来讲一下不集成 SDK 打开浏览器登录获取身份验证。

这需要使用 ASWebAuthenticationSession 获取身份验证 code 码。

网站登录身份验证逻辑:

一些网站作为一种服务提供了一种用于验证用户身份的安全机制。

当用户导航到站点的身份验证URL时,站点将向用户提供一个表单以收集凭据。

验证凭据后,站点通常使用自定义方案将用户的浏览器重定向到指示身份验证尝试结果的URL。

2. 不集成 SDK 打开浏览器登录

你可以通过使用指向身份验证网页的 URL 初始化实例来在应用程序中使用网络身份验证服务。

该页面可以是你维护的页面,也可以是由第三方操作的页面。

通过打开浏览器登录并获取身份验证 code 码,可以分为两种情况:

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 一种情况是在 App 内部打开浏览器获取身份验证

  3. 一种是打开手机自带浏览器获取身份验证

尝试第一种情况之后 GitHub 和 Apple 均可以正常打开浏览器并且成功登录拿到身份验证码。

但是 Google 提示在 App 内部打开登录页面是不安全的,因此只能选择第二种方式。

3. 打开手机自带浏览器获取身份验证

3.1 配置 URL Types

怎么通过ASWebAuthenticationSession获取身份验证Code码

建议使用 bundle id 保证唯一性。

3.2 定义全局变量

var session: ASWebAuthenticationSession!

var session : ASWebAuthenticationSession! 需要设置为全局变量,设置为局部变量会被释放掉导致弹框闪现。

3.3 获取身份验证 code 码

func oauthLogin(type: String) {     // val GitHub、Google、SignInWithApple     let redirectUrl = "配置的 URL Types"     let loginURL = Configuration.shared.awsConfiguration.authURL + "/authorize" + "?identity_provider=" + type + "&redirect_uri=" + redirectUri + "&response_type=CODE&client_id=" + Configuration.shared.awsConfiguration.appClientId     session = ASWebAuthenticationSession(url: URL(string: loginURL)!, callbackURLScheme: redirectUri) { url, error in         if error != nil {             return         }         if let responseURL = url?.absoluteString {             let components = responseURL.components(separatedBy: "#")             for item in components {                 if item.contains("code") {                     let tokens = item.components(separatedBy: "&")                     for token in tokens {                         if token.contains("code") {                             let idTokenInfo = token.components(separatedBy: "=")                             if idTokenInfo.count > 1 {                                 let code = idTokenInfo[1]                                 print("身份验证 code 码: \(code)")                                 return                             }                         }                     }                 }             }         }     }     session.presentationContextProvider = self     session.start() }

这里面有两个参数,一个是 redirectUri,一个是 loginURL。

redirectUri 就是 3.1 配置的白名单,作为页面重定向的唯一标示。

loginURL 是由 5 块组成:

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区

  2. 服务器地址:Configuration.shared.awsConfiguration.authURL + "/authorize"

  3. 打开的登录平台:identity_provider = "GitHub"

  4. 重定向标识:identity_provider = "配置的 URL Types"

  5. 相应类型:response_type = "CODE"

  6. 客户端 ID:client_id = "服务器配置"

回调中的 url 包含我们所需要的身份验证 code 码,需要层层解析获取 code。

3.4 指定授权界面显示的 window

告诉代理应该在哪个 window 展示授权界面给用户

#pragma mark - ASAuthorizationControllerPresentationContextProviding extension ViewController: ASWebAuthenticationPresentationContextProviding {     func presentationAnchor(for session: ASWebAuthenticationSession) -> ASPresentationAnchor {         return self.view.window ?? ASPresentationAnchor()     } }

“怎么通过ASWebAuthenticationSession获取身份验证Code码”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

--结束END--

本文标题: 怎么通过ASWebAuthenticationSession获取身份验证Code码

本文链接: https://lsjlt.com/news/67691.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 怎么通过ASWebAuthenticationSession获取身份验证Code码
    本篇内容介绍了“怎么通过ASWebAuthenticationSession获取身份验证Code码”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情...
    99+
    2024-04-02
  • Node.js中怎么通过身份证号验证年龄
    Node.js中怎么通过身份证号验证年龄,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。node.js实现static ...
    99+
    2024-04-02
  • 怎么使用RESTful API通过Vue处理身份验证
    这篇文章主要介绍“怎么使用RESTful API通过Vue处理身份验证”,在日常操作中,相信很多人在怎么使用RESTful API通过Vue处理身份验证问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操...
    99+
    2024-04-02
  • python通过SMSActivateAPI获取验证码的步骤
    api文档 https://sms-activate.org/cn/api2 要使用SMSActivateAPI库从sms-activate.org获取验证码,您需要按照以下步骤进行...
    99+
    2023-05-18
    python 获取验证码 python SMSActivateAPI 获取验证码
  • 亚马逊注册身份验证老通不过怎么办
    1. 检查输入信息的准确性 在亚马逊注册过程中,身份验证是一个重要的步骤。如果你的身份验证一直无法通过,首先要确保你输入的信息是准确无误的。仔细检查你的姓名、地址、电话号码等个人信息,确保它们与你的身份证或其他证件上的信息一致。 2. 尝...
    99+
    2023-10-27
    亚马逊 身份验证
  • Android如何通过手机自动获取短信验证码
    本文实例为大家分享了Android实现手机自动获取短信验证码功能,供大家参考,具体内容如下 1、短信监听广播 2、读取短信内容 3、截取短信内容【可以 reg截取】 4、填写至...
    99+
    2022-06-06
    自动 验证码 短信验证码 手机 Android
  • 亚马逊身份验证器怎么用
    以下是如何使用亚马逊身份验证器的步骤: 在您的设备上安装 Amazon Echo Dot 或其他 Echo 设备。 连接到 Echo 设备并打开设备的 Amazon Connect Settings。 点击设备设置中的“安全性”选项卡,...
    99+
    2023-10-27
    亚马逊 身份验证
  • 取消阿里云服务器身份验证会怎么样?
    身份验证是确保网络安全性的重要环节,尤其是在云计算环境中,身份验证更是必不可少的。然而,有时可能会遇到需要取消阿里云服务器身份验证的情况。那么,取消阿里云服务器身份验证会带来哪些影响呢?本文将对此进行详细说明。 阿里云服务器是阿里云为开发者...
    99+
    2023-11-07
    阿里 身份验证 服务器
  • VB.NET中怎么获取中文验证码
    这篇文章将为大家详细讲解有关VB.NET中怎么获取中文验证码,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。VB.net菜单:项目 --> XXX 属性... --> 配置 --&...
    99+
    2023-06-17
  • Asp.net core中怎么使用cookie验证身份
    今天就跟大家聊聊有关Asp.net core中怎么使用cookie验证身份,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。ASP.NET Core Identity 是一个完整的全功能...
    99+
    2023-06-17
  • ASP.NET MVC中怎么使用Oauth2.0验证身份
    这期内容当中小编将会给大家带来有关ASP.NET MVC中怎么使用Oauth2.0验证身份,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. OAuth3.0中的角色  ● Resource Owner:...
    99+
    2023-06-19
  • Postman怎么处理身份验证和授权
    在Postman中,处理身份验证和授权可以通过以下步骤进行: 打开Postman应用程序并创建一个新的请求。 在请求的Hea...
    99+
    2024-03-13
    Postman
  • Netdata是否支持通过LDAP或OAuth进行身份验证和授权
    目前,Netdata不直接支持通过LDAP或OAuth进行身份验证和授权。然而,您可以通过在反向代理或身份验证代理中设置LDAP或OAuth来实现对Netdata的身份验证和授权。您可以使用Nginx等反向代理来实现此功能。 Netdata...
    99+
    2024-06-04
    zabbix
  • Node.js通过身份证号验证年龄、出生日期与性别方法示例
    前言 大家如果想要知道自己的年龄,出生日期和性别,或者是别人的,给我个身份证号,我就可以知道,其实很简单的,看下面代码。 node.js实现 static validateIdNumberToAgeYe...
    99+
    2022-06-04
    示例 出生日期 身份证号
  • sql怎么用身份证提取年龄
    sql 中提取身份证号码中的年龄的方法:提取出生日期部分(身份证号码中第 7-14 位);使用 to_date 函数转换为日期格式;使用 extract 函数计算与当前日期之间的年差。 ...
    99+
    2024-05-14
  • 怎么在Android中获取短信验证码
    本篇文章为大家展示了怎么在Android中获取短信验证码,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。MainActivitypublic class MainActivity&...
    99+
    2023-05-30
    android
  • Android如何通过手机获取验证码来完成注册功能
    注册很多app或者网络账户的时候,经常需要手机获取验证码,来完成注册,那时年少,只是觉得手机获取验证码这件事儿很好玩,并没有关心太多,她是如何实现的,以及她背后的故事到底是什么...
    99+
    2022-06-06
    验证码 手机 Android
  • PHP中IIS7怎么实现基本身份验证
    这篇文章主要讲解了“PHP中IIS7怎么实现基本身份验证”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP中IIS7怎么实现基本身份验证”吧!在PHP运行环境中配置IIS7实现基本身份验证...
    99+
    2023-06-17
  • 怎么给wordpress添加双因素身份验证
    本篇内容介绍了“怎么给wordpress添加双因素身份验证”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  不管你是使用 WordPress...
    99+
    2023-06-25
  • 利用Java怎么实现一个验证身份证功能
    这期内容当中小编将会给大家带来有关利用Java怎么实现一个验证身份证功能,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。具体如下:package org.cxy.csdn.example;import ja...
    99+
    2023-05-31
    java ava
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作