云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

大带宽_查域名注册时间_免费

小七 141 0

大数据算法_阿里云_比较好的大数据教程

今天,用户可以从各种身份提供者中选择以满足他们的需要。"登录苹果"是社交服务提供商阵容中的最新成员,为苹果用户提供了绝佳的体验。登录苹果经过优化,可以在所有苹果设备上无缝工作;从tvOS到macOS。用户可以使用熟悉的FaceID或TouchID快速安全地登录第三方应用程序。苹果还承诺不会跟踪或分析用户,并为那些希望保留电子邮件地址隐私的用户提供了隐藏我的电子邮件选项。对于许多苹果用户来说,使用Apple登录是一个很有吸引力的登录选项。然而,它也有一些细微差别。让我们来看看这些细微差别,以及它们对第三方应用程序用户的影响。在其他平台上登录苹果使用Apple登录可将其他平台上的用户重定向到门户网站,在该门户网站上,用户首先输入他们的Apple ID凭据。然后用户通过发送到苹果设备或短信的代码进行验证。或者,用户可以跳过第二个因素步骤30天。目前,苹果似乎没有为登录其他平台的用户维护持久会话。通常,公有云市场,身份提供程序在用户第一次输入凭据后维护用户会话。此会话在向客户端应用验证时使用,这样用户就不必经常重新输入其凭据。苹果的第二个因素是在可信的苹果设备上发送代码,或者通过短信发送代码。与其他社交服务提供商相比,这是一种限制,什么是大数据云计算,后者提供了更广泛的第二因素选择,在多个平台上运行良好。有些甚至使用基于标准的第二个因素,如TOTP和专有因素。对于许多用户来说,iPhone是他们唯一拥有的苹果设备。对于这些用户来说,丢失或被盗的iPhone将使他们没有其他选择来访问依赖于登录苹果的应用程序。一般来说,用户验证其身份的方法越多,用户失去对其帐户的访问权限的可能性就越小。"苹果的第二个因素是,要么在可信的苹果设备上发送代码,要么通过短信发送代码。"在推特上留言一句话:在苹果生态系统中,登录苹果是一次奇妙的体验。虽然缺乏持久性会话和有限的第二因素选项会削弱其他平台上的体验,可能会使一些用户面临帐户锁定的风险。重复帐户在将Sign-in-with-Apple引入现有应用程序时,很多以前使用过其他提供商的用户很可能会开始使用Sign-in-with-Apple。当这种情况发生时,用户将无法访问其原始帐户的数据。这可能会让用户感到沮丧,并可能阻止他们在苹果或应用程序中使用登录。这种情况被称为用户复制(userreplication),它与作为一种技术的登录苹果(Apple)的关系不大,而更多地与它作为一个初出茅庐的提供商的地位有关。有时,如果帐户共享一个公共属性(如已验证的电子邮件地址),则可以检测到重复的用户。然而,使用苹果登录,用户可以选择将自己的电子邮件地址隐藏在每个应用程序特有的别名后面,因此我们不能依赖这种方法。"在苹果生态系统中,登录苹果是一次奇妙的体验。"在推特上留言苹果公司通过将登录与苹果和iCloud Keychain集成来应对这一问题,拥有服务的现有帐户的用户将被提示使用他们的凭据。然而,Keychain只存储电子邮件/用户名和密码组合,下载返利,这在社交登录场景中没有多大帮助。最终,用户还是要在享受登录苹果的好处和保留现有账户数据之间做出选择。如果他们都能做到呢?与Apple登录的帐户链接我们刚刚讨论了登录苹果给两组潜在用户带来的困难:多平台用户和现有帐户的用户。我们可以改善这两组用户的用户体验的一个方法是使用帐户链接。当用户链接两个帐户时,他们可以使用任何帐户访问同一个用户配置文件。帐户链接可以:防止账户重复,因为用户只需通过登录苹果就可以将现有账户链接起来;通过为用户提供多种访问帐户的方法,降低帐户锁定的风险;改善多平台用户的登录体验,这些用户可以在苹果设备上使用登录,云购网,在非苹果设备上使用另一个提供商。为了展示如何将帐户链接集成到现有的应用程序中,我们将构建一个自定义登录流,扩展身份验证体验,为苹果用户提供上下文感知的帐户链接建议。为此,我们将结合Auth0规则使用Auth0的帐户链接。我们的流程如下:正如我们所讨论的,帐户链接可以作为一种安全措施来降低帐户锁定的风险。因为用户倾向于使用默认值,所以我们应该始终尝试提供最安全的选项作为默认值。这使得登录流成为提供帐户链接的最佳时机。通过早期提示用户,我们可以防止诸如帐户复制和锁定等问题发生。创建帐户链接应用程序我们首先创建一个简单的web应用程序来验证用户身份,然后要求苹果用户链接另一个帐户。这与Auth0文档中描述的用于处理重复帐户的建议帐户链接过程类似。在我们的例子中,由于我们不能总是确定一个帐户是否是重复的,我们将提示所有的苹果用户,即使我们不能检测到一个重复的帐户。我们的应用程序代码将:验证用户识别苹果用户提示Apple用户使用其他帐户登录链接帐户当我们实现我们的定制流时,我们将把过程分解成单独的代码示例。为了演示的目的,我们的示例显示了代码的节略版本,八斗大数据,并不打算按原样使用。要查看完整的实现,请访问Github。设置身份验证为了验证用户身份,我们将使用Auth0的通用登录名。要进行设置,我们首先向Auth0注册我们的web应用程序。我们在下面的视频中展示了这个过程:注册应用程序后,我们将相关的配置变量传递给passport-auth0库,该库处理应用程序中的身份验证。图书馆将为我们承担大部分重担。代码应该如下所示:/***如果.env存在,则导入配置*/导入'dotenv/config';/***导入express和base实用程序*/从"Express"导入Express;从"cookie会话"导入cookieSession;从body parser导入bodyParser;/***导入auth0和passport帮助程序*/从"passport"导入passport;从"passport-Auth0"导入Auth0;从"connect sure login"导入{ensureLoggedIn};const app=Express();常数为_PROD=进程.env.NODE_env==='生产';/***设置渲染引擎*/应用程序集("查看引擎"、"哈巴狗");应用程序集("委托代理");/***配置会话,我们使用会话*为了分析尸体*/应用程序使用(烹饪课({name:'会话',秘密:process.env.COOKIE_机密,//cookie选项最大值:24*60*60*1000,//在不再使用localhost时启用这些选项:httpOnly:IS_PROD,是什么,安全:IS_PROD}));/***插入bodyParser*/应用程序使用(bodyParser.urlencoded({扩展:真}));//配置Passport以使用Auth0var auth0=新验证0({域:process.env.AUTH0_域,客户端ID:process.env.CLIENT_标识,客户机密:process.env.CLIENT_机密,回拨URL:process.env.BASE_URL+'/回调'},函数(accessToken、refreshToken、extraParams、profile、done){返回完成(null,profile);});护照。使用(auth0);应用程序使用(passport.initialize());应用程序使用(护照.会议());//Passport会话设置。passport.serializeUser(功能(用户,完成){完成(空,用户);});passport.deserializeUser(功能(目标,完成){完成(null,obj);});/***完全身份验证*/应用程序获取('/callback',函数(req,res,next){passport.认证("信息,用户,错误"{如果(错误){下一个返回(err);}如果(!用户){返回重定向('/login');}请求登录(用户,功能(err){如果(错误){返回next(err);}常量返回到=请求会话返回;删除请求会话返回;重定向(返回到| |'/');});})(请求、回复、下一步);});/***护照路线*/应用程序获取('/login',passport.认证('auth0'{scope:'openid配置文件电子邮件'}));/***确保除此之外的所有内容都有一个会话*/应用程序使用(确保登录({重定向到:'/login'}));应用程序使用(请求,回复)=>res.结束("嗨"+请求用户显示名称));识别苹果用户并提示他们正如我们已经讨论过的,我们的应用程序将苹果用户重定向到一个页面,在那里他们被要求链接另一个帐户。我们将苹果用户定义为:使用登录Apple进行登录,或者从iOS或Mac OS与非苹果提供商登录。在第一种情况下,我们要求用户将一个帐户与另一个提供商链接(在我们的演示应用程序中,我们只显示Google登录,但是我们的方法可以与任何数量的提供商一起工作)。在第二种情况下,我们提供链接用户的Apple帐户,以改善他们在苹果设备上的登录体验。尽管许多苹果用户会选择使用他们的社交帐户而不是Apple ID登录,但他们仍然会从帐户链接中获益,因为使用Apple登录可以在所有苹果设备上提供出色的登录体验。从"useragent"导入useragent;应用程序使用((请求,回复,下一步)=>{要求ua= 用户代理.parse(请求获取(‘用户代理’);下一步();});应用程序获取('/start',(req,res)=>{const{user}=re