Appwrite 1.5 已在云端发布 - 四月产品更新
共 11260字,需浏览 23分钟
·
2024-05-10 11:30
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[1]、APNS、Firebase Cloud Messaging、Vonage、Sendgrid 和 Mailgun 等流行的第三方提供商发送短信、电子邮件和推送通知。
亮点
-
短信、电子邮件和推送通知的统一平台。 -
与领先的第三方消息服务集成。 -
简化消息服务的后台代码。 -
功能齐全的信息发送控制台,用于组织信息、收件人和提供者。
Emails 邮件
通过 Appwrite Messaging,您可以向应用程序的用户发送自定义电子邮件。 Appwrite 支持 Mailgun[2] 和 Sendgrid[3] 作为 SMTP 提供程序。您必须先将其中之一配置为提供程序,然后才能开始。
完成设置后,就可以使用服务器 SDK 发送电子邮件了。要立即发送电子邮件,可以调用 createEmail
端点,并将计划留空。
下面是使用 Swift 时的样子
import Appwrite
let client = Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("5df5acd0d48c2") // Your project ID
.setKey("919c2d18fb5d4...a2ae413da83346ad2") // Your secret API key
let 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[4]、MSG91[5]、Telesign[6]、TextMagic[7] 和 Vonage[8]。
您可以使用服务器 SDK 发送 SMS 消息。要立即发送 SMS 消息,您可以调用 createSMS
端点,而无需传递草稿或 scheduled
参数。
import Appwrite
let client = Client()
.setEndpoint("https://cloud.appwrite.io/v1") // Your API Endpoint
.setProject("5df5acd0d48c2") // Your project ID
.setKey("919c2d18fb5d4...a2ae413da83346ad2") // Your secret API key
let 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 notifications
UNUserNotificationCenter.current().delegate = self
let authOptions: UNAuthorizationOptions = [.alert, .badge, .sound]
UNUserNotificationCenter.current().requestAuthorization(
options: authOptions,
completionHandler: { granted, error in
DispatchQueue.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 ID
const account = new Account(client);
// Include any account creation/management steps
const mfa = await account.updateMFA(true); // Enables 2FA
请阅读 2FA 公告[9]以了解功能的完整概述,或访问我们的文档以开始使用。
新的数据库运算符(Database operators)
新的数据库操作符 contains
和 or
,为数据库查询提供了更大的控制力和灵活性。这些运算符允许部分文本匹配、数组元素匹配和逻辑 OR 查询,大大增强了处理复杂数据检索和操作任务的能力。
亮点
-
新的数据库操作符 contains
和or
-
增强查询灵活性和控制能力 -
支持复杂的数据检索和操作
添加运算符
contains
运算符是对现有文本搜索运算符(例如startsWith
和 endsWith
)的一个很好的补充,并且可以与这两个运算符结合使用。
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)
])
]
)
阅读数据库操作符公告[10],了解功能的全面概述,或访问我们的文档,开始使用。
枚举 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 支持公告[11]以获取功能的完整概述,并访问我们的 Enum 文档以开始使用。
自定义令牌登录
在 Init 期间未宣布但最近发布的一项功能是自定义令牌登录。令牌是由 Appwrite 服务器 SDK 创建的短期密钥,可以通过客户端 SDK 交换会话以登录用户。如果您查看过 Magic URL 登录、电子邮件 OTP 登录或电话 (SMS) 登录,您可能已经熟悉令牌。
自定义令牌允许您使用服务器 SDK 为您自己的身份验证实现生成令牌。这允许您使用 Appwrite Functions 或您自己的后端编写自己的身份验证方法。您可以实现用户名和密码登录、验证码保护的身份验证、电话呼叫身份验证等等。自定义令牌还允许您将 Appwrite 与外部身份验证提供商(例如 Auth0、TypingDNA 或用户信任的任何提供商)集成。
创建您的自定义令牌
在 Appwrite 函数或服务器集成中准备好自己的登录流程后,您可以使用用户 API[12] 的创建令牌[13]端点来生成令牌。
// 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]");
请访问我们的文档[14]以了解更多信息。
开始使用云端 Appwrite 1.5
此版本为您在使用云进行构建时带来了更大的灵活性、安全性和安全性。随着消息传递的推出,我们提供了高要求的产品并满足了开发人员的需求。随着我们不断发展 Appwrite,无论您有什么需求,我们都会努力为您的产品提供最好的后端。我们感谢您的支持,并期待共同建设未来。
要开始使用,请访问我们的文档、YouTube 频道或在 Discord 上获取支持。
-
文档:https://appwrite.io/docs -
Discord:https://appwrite.io/discord -
YouTube:https://www.youtube.com/channel/UCtBJ1v69gm8NgbCju_03Fiw
Twilio: https://appwrite.io/blog/post/simplify-messaging-twilio
[2]Mailgun: https://appwrite.io/docs/products/messaging/mailgun/
[3]Sendgrid: https://appwrite.io/docs/products/messaging/sendgrid/
[4]Twilio: https://appwrite.io/docs/products/messaging/twilio/
[5]MSG91: https://appwrite.io/docs/products/messaging/msg91/
[6]Telesign: https://appwrite.io/docs/products/messaging/telesign/
[7]TextMagic: https://appwrite.io/docs/products/messaging/textmagic/
[8]Vonage: https://appwrite.io/docs/products/messaging/vonage/
[9]2FA 公告: https://appwrite.io/blog/post/announcing-two-factor-authentication
[10]数据库操作符公告: https://appwrite.io/blog/post/introducing-new-database-operators
[11]阅读 Enum SDK 支持公告: https://appwrite.io/blog/post/introducing-enum-sdk-support
[12]用户 API: https://appwrite.io/docs/products/auth/users
[13]创建令牌: https://appwrite.io/docs/references/1.5.x/server-nodejs/users#createToken
[14]文档: https://appwrite.io/docs/products/auth/custom-token