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

2024-05-12 01:44

本文主要是介绍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

这篇关于Appwrite 1.5 已在云端发布 - 四月产品更新的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/981252

相关文章

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

MySQL更新某个字段拼接固定字符串的实现

《MySQL更新某个字段拼接固定字符串的实现》在MySQL中,我们经常需要对数据库中的某个字段进行更新操作,本文就来介绍一下MySQL更新某个字段拼接固定字符串的实现,感兴趣的可以了解一下... 目录1. 查看字段当前值2. 更新字段拼接固定字符串3. 验证更新结果mysql更新某个字段拼接固定字符串 -

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

SpringKafka消息发布之KafkaTemplate与事务支持功能

《SpringKafka消息发布之KafkaTemplate与事务支持功能》通过本文介绍的基本用法、序列化选项、事务支持、错误处理和性能优化技术,开发者可以构建高效可靠的Kafka消息发布系统,事务支... 目录引言一、KafkaTemplate基础二、消息序列化三、事务支持机制四、错误处理与重试五、性能优

新特性抢先看! Ubuntu 25.04 Beta 发布:Linux 6.14 内核

《新特性抢先看!Ubuntu25.04Beta发布:Linux6.14内核》Canonical公司近日发布了Ubuntu25.04Beta版,这一版本被赋予了一个活泼的代号——“Plu... Canonical 昨日(3 月 27 日)放出了 Beta 版 Ubuntu 25.04 系统镜像,代号“Pluc

MySQL新增字段后Java实体未更新的潜在问题与解决方案

《MySQL新增字段后Java实体未更新的潜在问题与解决方案》在Java+MySQL的开发中,我们通常使用ORM框架来映射数据库表与Java对象,但有时候,数据库表结构变更(如新增字段)后,开发人员可... 目录引言1. 问题背景:数据库与 Java 实体不同步1.1 常见场景1.2 示例代码2. 不同操作

一文详解SQL Server如何跟踪自动统计信息更新

《一文详解SQLServer如何跟踪自动统计信息更新》SQLServer数据库中,我们都清楚统计信息对于优化器来说非常重要,所以本文就来和大家简单聊一聊SQLServer如何跟踪自动统计信息更新吧... SQL Server数据库中,我们都清楚统计信息对于优化器来说非常重要。一般情况下,我们会开启"自动更新

Nginx实现前端灰度发布

《Nginx实现前端灰度发布》灰度发布是一种重要的策略,它允许我们在不影响所有用户的情况下,逐步推出新功能或更新,通过灰度发布,我们可以测试新版本的稳定性和性能,下面就来介绍一下前端灰度发布的使用,感... 目录前言一、基于权重的流量分配二、基于 Cookie 的分流三、基于请求头的分流四、基于请求参数的分

定价129元!支持双频 Wi-Fi 5的华为AX1路由器发布

《定价129元!支持双频Wi-Fi5的华为AX1路由器发布》华为上周推出了其最新的入门级Wi-Fi5路由器——华为路由AX1,建议零售价129元,这款路由器配置如何?详细请看下文介... 华为 Wi-Fi 5 路由 AX1 已正式开售,新品支持双频 1200 兆、配有四个千兆网口、提供可视化智能诊断功能,建

Redis缓存问题与缓存更新机制详解

《Redis缓存问题与缓存更新机制详解》本文主要介绍了缓存问题及其解决方案,包括缓存穿透、缓存击穿、缓存雪崩等问题的成因以及相应的预防和解决方法,同时,还详细探讨了缓存更新机制,包括不同情况下的缓存更... 目录一、缓存问题1.1 缓存穿透1.1.1 问题来源1.1.2 解决方案1.2 缓存击穿1.2.1