首页 > 其他分享 >匿名登录详细教程

匿名登录详细教程

时间:2024-06-06 10:29:35浏览次数:25  
标签:教程 anonymous 用户 auth 购物车 匿名登录 匿名 详细 使用

创建并使用匿名用户通过 MemFire Cloud 进行身份验证

启用匿名登录功能可构建应用程序,为用户提供经过身份验证的体验,而无需用户输入电子邮件地址、密码、使用 OAuth 提供商或提供任何其他 PII(个人身份信息)。稍后,准备就绪后,用户可以将身份验证方法链接到其帐户。

匿名用户与匿名密钥

调用signInAnonymously()会创建一个匿名用户。它就像永久用户一样,只是如果用户退出、清除浏览数据或使用其他设备,则无法访问其帐户。

与永久用户一样,authenticated使用数据 API 访问您的项目时将使用 Postgres 角色。这些用户的 JWT 将具有声明is_anonymous,您可以使用该声明在 RLS 策略中加以区分。

这与 API 密钥不同anon,API 密钥不会创建用户,并且可用于实现对数据库的公共访问,因为它使用anonymousPostgres 角色。

匿名登录可用于构建:

  • 电子商务应用,例如结账前的购物车
  • 全功能演示,不收集个人信息
  • 临时或一次性帐户

在启用匿名登录之前,请检查您现有的 RLS 政策。匿名用户使用角色authenticated。为了区分匿名用户和永久用户,您的政策需要检查is_anonymous用户的 JWT 字段。

请参阅下文的访问控制部分以了解更多详细信息。

匿名登录

JavaScript

调用signInAnonymously()方法:

await supabase.auth.signInAnonymously();

将匿名用户转换为永久用户#

将匿名用户转换为永久用户需要将身份与用户关联。这需要您在 MemFire Cloud 项目中启用手动关联。

链接电子邮件/电话身份#

JavaScript

您可以使用该updateUser()方法将电子邮件或电话身份链接到匿名用户。

await supabase.auth.updateUser(UserAttributes(email: '[email protected]'));

链接 OAuth

JavaScript

您可以使用该linkIdentity()方法将 OAuth 身份链接到匿名用户。

await supabase.auth.linkIdentity(OAuthProvider.google);

访问控制

匿名用户authenticated就像永久用户一样承担该角色。您可以使用行级安全性 (RLS) 策略通过检查is_anonymous返回的 JWT 中的声明来区分匿名用户和永久用户auth.jwt()

create policy "Only permanent users can post to the news feed"

on news_feed as restrictive for insert

to authenticated

with check ((select (auth.jwt()->>'is_anonymous')::boolean) is false );

create policy "Anonymous and permanent users can view the news feed"

on news_feed for select

to authenticated

using ( true );
使用限制性政策

RLS 策略默认为宽容型,这意味着当应用多个策略时,它们会使用“OR”运算符组合在一起。构建限制性策略非常重要,以确保在与其他策略组合时始终强制执行对匿名用户的检查。

解决身份冲突

根据您的应用程序要求,当匿名用户转换为永久用户时可能会出现数据冲突。例如,在电子商务应用程序的上下文中,匿名用户无需注册/登录即可将商品添加到购物车中。当他们决定登录现有帐户时,您需要决定如何解决购物车中的数据冲突:

  1. 使用现有帐户中的商品覆盖购物车中的商品
  2. 使用匿名用户的商品覆盖购物车中的商品
  3. 将购物车中的商品合并在一起

自动清理

目前无法自动清理匿名用户。不过,您可以通过运行以下 SQL 从项目中删除匿名用户:

-- deletes anonymous users created more than 30 days ago

delete from auth.users

where is_anonymous is true and created_at < now() - interval '30 days';

资源

标签:教程,anonymous,用户,auth,购物车,匿名登录,匿名,详细,使用
From: https://blog.csdn.net/weixin_44957042/article/details/139493173

相关文章

  • Mysql 常用命令 详细大全【分步详解】
    1、启动和停止MySQL服务//暂停服务默认80netstopmysql80//启动服务netstartmysql80//任意地方启动mysql客户端的连接mysql-uroot-p2、输入密码 3、数据库4、DDL(DataDefinitionLanguage)数据定义语言,用来定义数据库对象(数据库,表,字段)1......
  • 大模型网信办备案全网最详细说明(附附件)
    一、大模型算法备案的强制性二、生成式人工智能(大语言模型)安全评估要点三、大模型备案必备材料+重点说明四、大模型备案填报流程五、大模型备案时间成本对比六、备案建议附录、过程性材料一、大模型算法备案的强制性1、强制要求备案(1)《办法》第六条规定:利用生成式人工......
  • 2024年6月 AWVS -24.4.27详细安装教程附下载教程含windows和linux多版本
    免责声明请勿利用文章内的相关技术从事非法测试。由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,请务必遵守网络安全法律法规。本文仅用于测试,请完成测试后24小时删除,请勿用于商业用途。如文中内容涉及侵权......
  • 使用 Winsock 实现简单的 TCP 服务器和客户端教程
    使用Winsock实现TCP服务器和客户端在这篇博客中,我们将介绍如何使用WinsockAPI在Windows上实现简单的TCP服务器和客户端。Winsock是Windows套接字扩展,提供了网络编程所需的API。通过这两个示例代码,我们将展示如何初始化Winsock库、创建套接字、进行连接以......
  • 【软件插件】SketchUP插件-最新版坯子插件2024 v3.2.2(支持SketchUp2012-2024版本)安装
    下载链接:https://r0vr8xquwul.feishu.cn/docx/MXC5dUMZroLibaxYgZ3cmkyinDe详细图文教程:https://www.yuque.com/zhefengerhuanzaigua/bld6x5/kc2baq1msy6dehb3软件介绍坯子插件库是为SketchUp(草图大师)用户推出的一款插件管理工具,我们知道在使用sketchup进行模型设计的时候是......
  • node.js + mysql实现基本的增删改查功能(保姆级教程---1)
    node.js+mysql实现基本的增删改查(保姆级教程---1)工具:sqlyog可视化工具,vscode,nodejs环境(我的node.js版本号是18.16.0)前提条件:电脑上要有node.js、npm、mysql服务器、可视化工具(navicat或sqlyog都行)步骤:新建文件夹node-mysql-cruid(根目录),终端打开该目录初始化项目:npm......
  • node.js + mysql实现基本的增删改查功能(保姆级教程---2优化版)
    node.js+mysql实现基本的增删改查(保姆级教程---2优化版)上一个实现对增删改查功能都写在同一个文件里,代码过于冗余,我认为可以优化,分开写在不同文件里面,使得更加直观。废话不多说,直接进入主题:对之前的代码进行抽离:db.js文件(用于数据库的连接,并导出连接供其他模块使用):......
  • 内网穿透教程
    内网穿透教程本文介绍如何使用FRP(FastReverseProxy)工具实现内网穿透,包括配置Azure公网IP、安装Docker和FRP,以及在内网服务器上配置和运行FRP客户端。一、配置公网IP1.申请Azure公网IP登录到Azure门户。创建一个新的虚拟机实例,建议使用1G内存的。在虚拟机......
  • 最大似然估计的求解步骤(详细解释,通俗易懂)
          关于最大似然估计的定义我已经分享过啦,小伙伴们可以通过下面的链接看看 什么是最大似然估计?1.求解步骤        今天我们来说一下它的求解步骤(这里的求解过程是以离散型随机变量为例,连续型随机变量同理)。在上文中我们知道,离散型随机变量的似然函数为......
  • VSCode(Visual Studio Code) C/C++ 开发环境 | MinGW无需输入代码 — 99.99%成功率(超详
    VisualStudioCodeC++六一马不停蹄更新中……参考资料:visualstudio|cppuninstall|vscode———————————————————————————————————————————————卸载VSCode【如没下跳转】-先下载下准备zip:MinGW32.zipMinGW真......