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

相关文章

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

五大特性引领创新! 深度操作系统 deepin 25 Preview预览版发布

《五大特性引领创新!深度操作系统deepin25Preview预览版发布》今日,深度操作系统正式推出deepin25Preview版本,该版本集成了五大核心特性:磐石系统、全新DDE、Tr... 深度操作系统今日发布了 deepin 25 Preview,新版本囊括五大特性:磐石系统、全新 DDE、Tree

Linux Mint Xia 22.1重磅发布: 重要更新一览

《LinuxMintXia22.1重磅发布:重要更新一览》Beta版LinuxMint“Xia”22.1发布,新版本基于Ubuntu24.04,内核版本为Linux6.8,这... linux Mint 22.1「Xia」正式发布啦!这次更新带来了诸多优化和改进,进一步巩固了 Mint 在 Linux 桌面

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R

Ubuntu 24.04 LTS怎么关闭 Ubuntu Pro 更新提示弹窗?

《Ubuntu24.04LTS怎么关闭UbuntuPro更新提示弹窗?》Ubuntu每次开机都会弹窗提示安全更新,设置里最多只能取消自动下载,自动更新,但无法做到直接让自动更新的弹窗不出现,... 如果你正在使用 Ubuntu 24.04 LTS,可能会注意到——在使用「软件更新器」或运行 APT 命令时,

高效+灵活,万博智云全球发布AWS无代理跨云容灾方案!

摘要 近日,万博智云推出了基于AWS的无代理跨云容灾解决方案,并与拉丁美洲,中东,亚洲的合作伙伴面向全球开展了联合发布。这一方案以AWS应用环境为基础,将HyperBDR平台的高效、灵活和成本效益优势与无代理功能相结合,为全球企业带来实现了更便捷、经济的数据保护。 一、全球联合发布 9月2日,万博智云CEO Michael Wong在线上平台发布AWS无代理跨云容灾解决方案的阐述视频,介绍了

poj3468(线段树成段更新模板题)

题意:包括两个操作:1、将[a.b]上的数字加上v;2、查询区间[a,b]上的和 下面的介绍是下解题思路: 首先介绍  lazy-tag思想:用一个变量记录每一个线段树节点的变化值,当这部分线段的一致性被破坏我们就将这个变化值传递给子区间,大大增加了线段树的效率。 比如现在需要对[a,b]区间值进行加c操作,那么就从根节点[1,n]开始调用update函数进行操作,如果刚好执行到一个子节点,