Appwrite 1.5 已在云端发布 - 四月产品更新

在这里插入图片描述

Hello, Appwriters👋

以下是四月份的产品更新和一个令人兴奋的消息: Appwrite 1.5 已在 Appwrite Cloud 上发布。这个版本备受期待,我们很高兴终于能与大家分享这个好消息。

为了让您快速复习,您现在可以开始使用云计算平台上的所有新产品和功能:

  • Messaging
  • Improved SSR
  • Database operators
  • 2FA
  • Enums SDK support
  • Custom token login

您无需采取任何措施,因为您的项目已经迁移到 Appwrite 1.5。

在这里插入图片描述

作为1.5版本的一部分,Appwrite在Init期间发布了许多新产品和功能。虽然新的Appwrite产品和功能已经可以在自托管平台上使用,但还没有发布到云平台上。今天,我们很高兴地宣布,Appwrite 1.5云版本终于发布了,等待终于结束了。

为了让您耳目一新,下面概述了发布到云平台的所有产品和功能,以及如何开始使用。

Messaging 消息通知

只需几行后台代码,您现在就可以使用云技术为您的应用程序设置一个功能齐全的消息服务,在一个统一的 API 下涵盖三种重要的通信渠道。您可以通过 Twilio、APNS、Firebase Cloud Messaging、Vonage、Sendgrid 和 Mailgun 等流行的第三方提供商发送短信、电子邮件和推送通知。

亮点

  • 短信、电子邮件和推送通知的统一平台。
  • 与领先的第三方消息服务集成。
  • 简化消息服务的后台代码。
  • 功能齐全的信息发送控制台,用于组织信息、收件人和提供者。

Emails 邮件

通过 Appwrite Messaging,您可以向应用程序的用户发送自定义电子邮件。 Appwrite 支持 Mailgun 和 Sendgrid 作为 SMTP 提供程序。您必须先将其中之一配置为提供程序,然后才能开始。

完成设置后,就可以使用服务器 SDK 发送电子邮件了。要立即发送电子邮件,可以调用 createEmail 端点,并将计划留空。

下面是使用 Swift 时的样子

import Appwritelet client = Client().setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint.setProject("5df5acd0d48c2")                 // Your project ID.setKey("919c2d18fb5d4...a2ae413da83346ad2") // Your secret API keylet messaging = Messaging(client)let message = try await messaging.createEmail(messageId: ID.unique(),subject: "April's Newsletter",content: newsletterContent,topics: ["news-letter"]draft: xfalse,html: xtrue,scheduledAt: "2024-04-29T20:55:41+0000"
)

在我们的文档中了解如何开始使用电子邮件:https://appwrite.io/docs/products/messaging/send-email-messages。

SMS 短信

要向用户发送短信,您需要添加 SMPT 提供商。Appwrite 支持 Twilio、MSG91、Telesign、TextMagic 和 Vonage。

您可以使用服务器 SDK 发送 SMS 消息。要立即发送 SMS 消息,您可以调用 createSMS 端点,而无需传递草稿或 scheduled 参数。

import Appwritelet client = Client().setEndpoint("https://cloud.appwrite.io/v1")  // Your API Endpoint.setProject("5df5acd0d48c2")                  // Your project ID.setKey("919c2d18fb5d4...a2ae413da83346ad2")  // Your secret API keylet messaging = Messaging(client)let message = try await messaging.createSMS(messageId: ID.unique(),content: "Don't forget your Wednesday meeting at 10am!",users: ["413da83346a"]
)

在我们的文档中了解如何开始使用短信:https://appwrite.io/docs/products/messaging/send-sms-messages。

Push notifications 推送通知

如果您正在构建移动应用程序,请注意推送通知必须通过第三方提供商发送,如 Apple Push Notification 服务和 Firebase Cloud Messaging。苹果和安卓设备的推送通知 API 只能通过这些服务访问。

在发送第一条推送通知之前,您必须配置这些服务。

要使用 APNS 发送,您必须首先使用 (_:didFinishLaunchingWithOptions:) 方法在应用程序委托的应用程序中注册远程通知。

func application(_ application: UIApplication,didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey : Any]? = nil
) -> Bool {// Register for remote notificationsUNUserNotificationCenter.current().delegate = selflet authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]UNUserNotificationCenter.current().requestAuthorization(options: authOptions,completionHandler: { granted, error inDispatchQueue.main.async {if granted {application.registerForRemoteNotifications()}}})return true
}

在我们的文档中了解如何为 Apple 和 Android 设置推送通知。

  • ANPS:https://appwrite.io/docs/products/messaging/apns
  • FCM:https://appwrite.io/docs/products/messaging/fcm

改进了对服务器端渲染 (SSR) 的支持

Appwrite Cloud 1.5 增强了对 SSR 身份验证模式的支持,优化了平台以与 NextJS、SvelteKit 和 Nuxt 等框架一起使用。此更新引入了在服务器端生成和访问会话的官方方法,允许无缝会话 cookie 管理和授权请求,从而弥合客户端和服务器端渲染之间的差距。

亮点

  • 增强的 SSR 身份验证支持。
  • 改进了 SSR 框架的会话管理。
  • 会话生成和访问的正式方法。

最大的变化是 Appwrite 现在允许您生成和访问会话服务器端以设置会话 cookie 并使用这些会话来授权未来的请求。

const session = account.createEmailPasswordSession(email, password)
console.log(session.secret) // Output: 'eyJpZCI...sdfahfkjjy'

使用新的 setSession 方法,我们现在可以从 cookie 中检索会话密钥,并授权用户向我们的服务器执行经过身份验证的请求。

client.setSession(session.secret)
const currentUser = await account.get()

双因素身份验证 (2FA)

通过添加双因素身份验证 (2FA),安全性占据了首位。这项新功能通过要求第二种形式的身份验证来实现额外的安全层。您可以使用 Appwrite 的简单方法来创建挑战和解决方案,轻松实施 2FA,为用户提供通过电话、电子邮件或使用身份验证器应用程序的 TOTP 进行身份验证的选项。

亮点

  • 通过双因素身份验证增强安全性。
  • 轻松实施 2FA 挑战。
  • 支持多种身份验证方式,包括电话、电子邮件、TOTP。
  • 可以与您使用 Appwrite Auth 实施的任何现有身份验证方法结合使用。

启用 2FA

要使用 2FA,需要在用户帐户上启用它。这可以通过调用 account.updateMFA() 来实现。

import { Client, Account } from "appwrite";// Init SDK
const client = new Client();client.setEndpoint('https://cloud.appwrite.io/v1') // Your API Endpoint.setProject('<YOUR_PROJECT_ID>'); // Your project IDconst account = new Account(client);// Include any account creation/management stepsconst mfa = await account.updateMFA(true); // Enables 2FA

请阅读 2FA 公告以了解功能的完整概述,或访问我们的文档以开始使用。

新的数据库运算符(Database operators)

新的数据库操作符 containsor,为数据库查询提供了更大的控制力和灵活性。这些运算符允许部分文本匹配、数组元素匹配和逻辑 OR 查询,大大增强了处理复杂数据检索和操作任务的能力。

亮点

  • 新的数据库操作符 containsor
  • 增强查询灵活性和控制能力
  • 支持复杂的数据检索和操作

添加运算符

contains 运算符是对现有文本搜索运算符(例如startsWithendsWith)的一个很好的补充,并且可以与这两个运算符结合使用。

db.listDocuments('<DATABASE_ID>','<COLLECTION_ID>',[Query.contains('content', ['happy', 'love']),]
)

要使用 OR 运算符,请将 Query.or([...]) 传递给查询数组,并在嵌套数组中提供至少两个查询。

db.listDocuments('<DATABASE_ID>','<COLLECTION_ID>',[Query.or([Query.contains('name','ivy'),Query.greaterThan('age',30)])]
)

阅读数据库操作符公告,了解功能的全面概述,或访问我们的文档,开始使用。

枚举 SDK(Enum SDK)支持

Enum SDK 支持扩展了 Appwrite SDK 在不同编程场景中的多功能性和可用性。

亮点

  • 枚举支持提高了类型安全性和代码可读性。

枚举和 OAuth

SDK 枚举最常见的例子之一是 OAuth 提供程序。要使用 Apple 登录,必须传递 Apple 字符串作为提供程序。有了枚举,您就可以用 OAuthProvider.Apple 代替。

import { Client, Account, OAuthProvider } from "appwrite";const client = new Client().setEndpoint('https://cloud.appwrite.io/v1').setProject('<PROJECT_ID>');const account = new Account(client);account.createOAuth2Session(OAuthProvider.Apple);

请阅读 Enum SDK 支持公告以获取功能的完整概述,并访问我们的 Enum 文档以开始使用。

自定义令牌登录

在 Init 期间未宣布但最近发布的一项功能是自定义令牌登录。令牌是由 Appwrite 服务器 SDK 创建的短期密钥,可以通过客户端 SDK 交换会话以登录用户。如果您查看过 Magic URL 登录、电子邮件 OTP 登录或电话 (SMS) 登录,您可能已经熟悉令牌。

自定义令牌允许您使用服务器 SDK 为您自己的身份验证实现生成令牌。这允许您使用 Appwrite Functions 或您自己的后端编写自己的身份验证方法。您可以实现用户名和密码登录、验证码保护的身份验证、电话呼叫身份验证等等。自定义令牌还允许您将 Appwrite 与外部身份验证提供商(例如 Auth0、TypingDNA 或用户信任的任何提供商)集成。

创建您的自定义令牌

在 Appwrite 函数或服务器集成中准备好自己的登录流程后,您可以使用用户 API 的创建令牌端点来生成令牌。

// Server-side code
let users = Users(client)let token = try await users.createToken("[USER_ID]")
let secret = token.secret

然后,通过电子邮件、魔术链接、文本或其他方法将此令牌传递给客户端,以便他们可以登录其客户端应用程序。

// Client-side code
let account = Account(client);let session = try await account.createSession(userId: "[USER_ID]",secret: "[SECRET]");

请访问我们的文档以了解更多信息。

开始使用云端 Appwrite 1.5

此版本为您在使用云进行构建时带来了更大的灵活性、安全性和安全性。随着消息传递的推出,我们提供了高要求的产品并满足了开发人员的需求。随着我们不断发展 Appwrite,无论您有什么需求,我们都会努力为您的产品提供最好的后端。我们感谢您的支持,并期待共同建设未来。

要开始使用,请访问我们的文档、YouTube 频道或在 Discord 上获取支持。

  • 文档:https://appwrite.io/docs
  • Discord:https://appwrite.io/discord
  • YouTube:https://www.youtube.com/channel/UCtBJ1v69gm8NgbCju_03Fiw

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/689500.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网络匿名--不只是TOR

今天&#xff0c;我们将讨论互联网匿名和隐私&#xff1a; 如何隐藏你的真实身份。 什么是 TOR 。 如何以完全匿名的方式执行黑客任务。 如何使用proxy chain。 如何让我们的匿名性领先一步。 如何使用特定的操作系统保持匿名。 结论&#xff0c;如何实现互联网匿名和隐…

Colab/PyTorch - 003 Transfer Learning For Image Classification

Colab/PyTorch - 003 Transfer Learning For Image Classification 1. 源由2. 迁移学习(ResNet50)2.1 数据集准备2.2 数据增强2.3 数据加载2.4 迁移学习2.5 数据集训练&验证2.6 模型推理 3. 总结4. 参考资料 1. 源由 迁移学习已经彻底改变了 PyTorch 中处理图像分类的方式…

TriDet: Temporal Action Detection with Relative Boundary Modeling

标题&#xff1a;TriDet&#xff1a;采用相对边界建模的时间动作检测 原文链接&#xff1a;TriDet: Temporal Action Detection With Relative Boundary Modeling (thecvf.com)https://openaccess.thecvf.com/content/CVPR2023/papers/Shi_TriDet_Temporal_Action_Detection_W…

Github图片显示不出来?两步解决!

很多同学可能和我一样&#xff0c;在GitHub中找一些项目或者资料的时候&#xff1b;总是会看到一些图片显示不出来&#xff0c;或者数学公式乱码&#xff1a; 比如这样 还有这样 其实这个主要是因为DNS污染导致的&#xff0c;具体大家可以百度&#xff0c;这边不详细介绍。 解决…

电脑复制和粘贴的时候会出现Hello!

电脑不管是Microsoft Excel还是Microsoft Word复制之后粘贴过来就出现HELLO&#xff0c;当复制粘贴文件的时候就会出现WINFILE&#xff1b; 具体现象看下面两个图片&#xff1a; 这是因为winfile 文件病毒&#xff08;幽灵蠕虫病毒&#xff09;,每月的28号发作&#xff1b; 症状…

docker01-简介和概述

什么是docker&#xff1f; 我们现在开发项目是在windows操作系统使用idea开发&#xff0c;本地windows操作系统上有我们项目所需的jdk&#xff0c;mysql&#xff0c;redis&#xff0c;tomcat等环境&#xff0c;如果我们想打包我们的项目到一个别的服务器上&#xff0c;在别的服…

MySql数据库基础知识

大家好&#xff0c;在当今软件世界中&#xff0c;软件测试人员肩负着至关重要的职责&#xff0c;确保软件的质量与稳定性。而对于软件测试工作来说&#xff0c;了解 MySQL 基础知识是一项极具价值的技能。MySQL 作为广泛应用的关系型数据库管理系统&#xff0c;在众多软件项目中…

Java --- 集合(1)--- 带你了解Collection接口以及三种遍历方式

引言&#xff1a;本期博客摘选黑马程序员与Java从入门到精通&#xff0c;如果有不准确的地方还请指出&#xff0c;另外也感谢各位大佬点击进来观看。 目录 一.什么是集合&#xff1f; 二.单列集合的体系结构&#xff1a; 三.Collection接口的使用&#xff1a; 四.Collection…

shared_ptr 引用计数相关问题

前言 智能指针是 C11 增加的非常重要的特性&#xff0c;并且也是面试的高频考点&#xff0c;本文主要解释以下几个问题&#xff1a; 引用计数是怎么共享的、怎么解决并发问题的资源释放时&#xff0c;控制块的内存释放吗weak_ptr 怎么判断对象是否已经释放 文中源码用的是 L…

XMind 2023 v23.05.2660软件安装教程(附软件下载地址)

软件简介&#xff1a; 软件【下载地址】获取方式见文末。注&#xff1a;推荐使用&#xff0c;更贴合此安装方法&#xff01; XMind 2023 v23.05.2660被视为顶尖思维导图软件&#xff0c;其界面简洁清爽&#xff0c;功能布局直观简单&#xff0c;摒弃繁复不实。尽管体积小巧&a…

RabbitMQ(安装配置以及与SpringBoot整合)

文章目录 1.基本介绍2.Linux下安装配置RabbitMQ1.安装erlang环境1.将文件上传到/opt目录下2.进入/opt目录下&#xff0c;然后安装 2.安装RabbitMQ1.进入/opt目录&#xff0c;安装所需依赖2.安装MQ 3.基本配置1.启动MQ2.查看MQ状态3.安装web管理插件4.安装web管理插件超时的解决…

【R语言与统计】SEM结构方程、生物群落、多元统计分析、回归及混合效应模型、贝叶斯、极值统计学、meta分析、copula、分位数回归、文献计量学

统计模型的七大类&#xff1a;一&#xff1a;多元回归 在研究变量之间的相互影响关系模型时候&#xff0c;用到这类方法&#xff0c;具体地说&#xff1a;其可以定量地描述某一现象和某些因素之间的函数关系&#xff0c;将各变量的已知值带入回归方程可以求出因变量的估计值&…