Files
webapp-starter/docs/aliyun-sms.md
D8D Developer 71aaeb9424 ci: 添加 Docker 构建和推送工作流
- 新增 Dockerfile 和 .dockerignore 文件
- 添加 Gitea 持续集成工作流,用于构建和推送 Docker 镜像
- 新增 .gitignore 文件,忽略构建和配置文件
- 添加项目结构和规范文档,包括 TypeScript、模块化、API、数据库等规范
- 新增前端和后端的基础代码结构
2025-06-11 09:35:39 +00:00

72 lines
2.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

```typescript
// This file is auto-generated, don't edit it
// 依赖的模块可通过下载工程中的模块依赖文件或右上角的获取 SDK 依赖信息查看
import Dysmsapi20170525, * as $Dysmsapi20170525 from '@alicloud/dysmsapi20170525';
import OpenApi, * as $OpenApi from '@alicloud/openapi-client';
import Util, * as $Util from '@alicloud/tea-util';
import { env } from '../../config/env.ts';
export class SMS {
/**
* @remarks
* 使用AK&SK初始化账号Client
* @returns Client
*
* @throws Exception
*/
static createClient(): Dysmsapi20170525 {
// 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
// 建议使用更安全的 STS 方式更多鉴权访问方式请参见https://help.aliyun.com/document_detail/378664.html。
if (!env.deploy?.alicloud) {
throw new Error("Aliyun SMS configuration is required");
}
const { accessKeyId, accessKeySecret } = env.deploy.alicloud;
let config = new $OpenApi.Config({
accessKeyId,
accessKeySecret,
});
// Endpoint 请参考 https://api.aliyun.com/product/Dysmsapi
config.endpoint = `dysmsapi.aliyuncs.com`;
return new (Dysmsapi20170525 as any).default(config);
}
/**
* 发送短信
* @param phoneNumber 手机号
* @param code 验证码
* @param templateCode 模板代码,默认使用配置的验证码模板
* @param signName 短信签名,默认使用配置的签名
*/
static async sendVerificationSMS(
phoneNumber: string,
code: string,
templateCode?: string,
signName?: string
): Promise<boolean> {
let client = this.createClient();
let sendSmsRequest = new $Dysmsapi20170525.SendSmsRequest({
signName: signName || (env.sms?.defaultSignName || "多八多"),
templateCode: templateCode || (env.sms?.defaultTemplateCode || "SMS_164760103"),
phoneNumbers: phoneNumber,
templateParam: JSON.stringify({code: code}),
});
let runtime = new $Util.RuntimeOptions({ });
try {
// 发送短信
const result = await client.sendSmsWithOptions(sendSmsRequest, runtime);
console.log("SMS sent successfully:", result);
return true;
} catch (error: unknown) {
// 错误处理
const err = error as { message?: string, data?: { Recommend?: string } };
console.error("SMS sending failed:", err.message);
if (err.data && err.data["Recommend"]) {
console.error("Recommendation:", err.data["Recommend"]);
}
return false;
}
}
}
```