1. Trang chủ
  2. » Luận Văn - Báo Cáo

đề tài thuyết trình create account by email or phone number

12 1 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Create Account by Email or Phone Number
Tác giả Trương Thanh Tâm, Huỳnh Ngọc Hải, Nguyễn Minh Nhựt, Trần Đức Trọng, Nguyễn Thành Đạt, Trịnh Quốc Bảo
Người hướng dẫn Nguyễn Mạnh Hùng
Trường học Trường Đại Học Công Nghệ Tp. Hồ Chí Minh
Chuyên ngành Công Nghệ Thông Tin
Thể loại Đề Tài Thuyết Trình
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 12
Dung lượng 802,22 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tạo tài khoản bằng Email hoặc số điện thoại làquá trình tạo tài khoản bằngemail hoặc số điện thoại thường được thực hiện trong các ứng dụng hoặctrang web để xác thực người dùng và cung c

Trang 1

ĐỀ TÀI THUYẾT TRÌNH

Create account by Email or phone number

NGÀNH:CÔNG NGHỆ THÔNG TIN

Giảng viên hướng dẫn: Nguyễn Mạnh Hùng

Nhóm 4 : Trương Thanh Tâm: 2180603896

Huỳnh Ngọc Hải : 2180606759 Nguyễn Minh Nhựt: 2180601062

Nguyễn Thành Đạt: 2180606116

Lớp : 21THB5

TP Hồ Chí Minh, 2023

I.Tạo tài khoản bằng Email hoặc số điện thoại.

Ộ GIÁO DỤC VÀ ĐÀO T OẠ

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ TP HỒ CHÍ MINH

Trang 2

Tạo tài khoản bằng Email hoặc số điện thoại là quá trình tạo tài khoản bằng email hoặc số điện thoại thường được thực hiện trong các ứng dụng hoặc trang web để xác thực người dùng và cung cấp quyền truy cập vào dịch vụ hoặc ứng dụng.

II Các bước tạo 1 tài khoản bằng Email hoặc số điện thoại.

1 Người dùng chọn tạo tài khoản: Người dùng truy cập trang web hoặc ứng dụng và chọn tạo một tài khoản mới.

2 Nhập thông tin đăng nhập: Người dùng cung cấp thông tin cần thiết để đăng nhập tài khoản Thông tin này có thể bao gồm:

● Địa chỉ email hoặc số điện thoại di động: Người dùng chọn cách đăng nhập bằng cách nhập email hoặc số điện thoại.

● Mật khẩu: Người dùng chọn một mật khẩu an toàn để bảo vệ tài khoản.

● Khác thông tin cá nhân: Tùy theo ứng dụng hoặc trang web cụ thể, người dùng có thể yêu cầu cung cấp thông tin cá nhân khác như tên, ngày sinh, giới tính, vv.

3 Xác thực thông tin: Sau khi người dùng cung cấp thông tin, hệ thống thường sẽ thực hiện một số kiểm tra và xác thực thông tin để đảm bảo tính hợp lệ và an toàn của dữ liệu.

4 Xác thực email hoặc số điện thoại: Nếu người dùng chọn đăng nhập bằng email, hệ thống sẽ gửi một email xác thực đến địa chỉ email mà người dùng đã cung cấp Email này chứa một liên kết hoặc xác thực mã hóa Nếu người dùng chọn đăng ký bằng số điện thoại, hệ thống sẽ gửi một tin nhắn SMS chứa mã xác thực đến số điện thoại đã nhập.

5 Xác thực xác thực mã hóa: Người dùng truy cập email hoặc điện thoại

di động của họ để lấy mã xác thực Người dùng nhập mã xác thực vào ứng dụng hoặc trang web để hoàn tất quá trình đăng ký.

6 Hoàn thành đăng ký: Sau khi người dùng xác thực thành công, tài khoản của họ sẽ được tạo và họ có thể bắt đầu sử dụng dịch vụ hoặc ứng dụng

III Sự an toàn trong việc đăng kí và sử dụng tài khoản

Trang 3

Với nhu cầu và sự phát triển mạnh mẽ của internet, việc đăng ký cho mình 1 tài khoản mạng xã hội hay gmail,vv thật sự rất quan trọng Và để an toàn bảo mật thông tin cho người dùng thì ta cần tới đó chính là mã OTP Quy trình đảm bảo tính bảo mật và xác thực của tài khoản người dùng và chắc chắn rằng chỉ có người dùng thực sự mới có thể truy cập vào tài khoản của họ.

*Các hình thức gửi mã OTP:

1 Gửi OTP qua email

Để gửi OTP (Mật khẩu một lần) mã hóa qua email trong ứng dụng của bạn, bạn cần sử dụng một email dịch vụ hoặc một email thư viện trong trình cài đặt ngôn ngữ mà bạn đang sử dụng Một số bước để thực hiện các bước điều này:

Bước 1: Đăng ký tài khoản với một email dịch vụ hoặc sử dụng email dịch vụ hiện có Trước tiên, bạn cần có một email tài khoản (ví dụ: Gmail) hoặc có thể sử dụng một dịch vụ SMTP như SendGrid, SMTP2GO hoặc Amazon SES.

Bước 2: Tích hợp email thư viện hoặc sử dụng email thư viện hoặc

sử dụng email API Sử dụng email thư viện (ví dụ: NET SmtpClient): Nếu bạn đang sử dụng trình cài đặt ngôn ngữ NET (C#), bạn có thể sử dụng thư viện SmtpClient có sẵn trong thư viện NET Framework để gửi email Dưới đây là ví dụ sử dụng SmtpClient để gửi email trong C#:

2 Gửi OTP qua tin nhắn SMS

Ngày nay, việc sử dụng SMS OTP để gửi mã xác minh hay thông tin bảo mật tài khoản đang được doanh nghiệp ưa chuộng hơn hết bởi

vì chúng được gửi đến thuê bao của khách hàng tức thì khi họ đăng ký hoặc sử dụng dịch vụ từ website/hệ thống của bạn API được xem là một giao thức kết nối giữa hệ thống của doanh nghiệp (ERP, CRM, HRM có sẵn…) với chương trình SMS để gửi tin nhắn OTP đến người dùng.SMS OTP được gửi kết hợp với hình thức SMS Brandname - tin nhắn kèm tên thương hiệu, tên doanh nghiệp ở mục người gửi Bran

Trang 4

IV Cách tạo đăng ký tài khoản bằng Email hoặc số điện thoại):

1 Tạo một form đăng nhập

Bước 1: Nhập tên người dùng

Bước 2: Nhập tên tài khoản

Bước 2: Mật khẩu

Bước 3: Xác nhận mật khẩu

Bước 4: Gửi OTP xác nhận 2 lớp

Code đăng kí của form đăng kí tài khoản

//Tiến hành đăng kí

private voidbtndangki_Click(objectsender, EventArgs e)

Trang 5

MessageBox.Show("Mật khẩu không trùng khớp, vui lòng nhập lại","Lỗi");

txtrepassword.Clear();

return;

}

else

{

stringnameid = txtname.Text;

stringemailOrPhoneNumber = txtemailhaysdt.Text;

stringpassword =this.txtpassword.Text;

if(!otpEntered)

{

MessageBox.Show("Vui lòng gửi mã OTP trước khi đăng ký.");

return;

}

stringenteredOTP = txtcheckOTP.Text.Trim();

if(string.IsNullOrEmpty(enteredOTP))

{

MessageBox.Show("Vui lòng nhập mã OTP trước khi đăng ký.");

return;

}

if(IsEmailOrPhoneExists(emailOrPhoneNumber))

{

MessageBox.Show("Email hoặc số điện thoại đã tồn tại!");

}

else

{

User newUser =newUser

{

name = nameid,

Email = emailOrPhoneNumber,

PasswordHash = password,

};

users.Add(newUser);

MessageBox.Show("Đăng ký thành công!");

DanhsachTaiKhoan.Items.Add($"Tên người dùng:{nameid}||| Tên tài khoản:{emailOrPhoneNumber}

");

txtname.Clear();

txtpassword.Clear();

txtrepassword.Clear();

txtemailhaysdt.Clear();

txtcheckOTP.Clear();

otpEntered =false;

}

}

}

Code Check email hoặc số điện thoại có trùng hay không

//check

private boolIsEmailOrPhoneExists(stringemailOrPhone)

{

Trang 6

private voidtxtemailhaysdt_TextChanged(objectsender, EventArgs e) {

stringemailOrPhone = txtemailhaysdt.Text.Trim();

if(IsEmailOrPhoneExists(emailOrPhone))

{

MessageBox.Show("Tài khoản này đã tồn tại!");

}

}

Code Gửi OTP

//Gửi OTP

private voidbtnGuiOTP_Click(objectsender, EventArgs e)

{

try

{

otp = random.Next(100000, 100000000);

varfromAddress =newMailAddress("hai099089@gmail.com");

vartoAddress =newMailAddress(txtemailhaysdt.ToString());

const stringfrompass ="bvrd eiqw khei kzpw";

const stringsubject ="OTP Code";

stringbody = otp.ToString();

varsmtp =newSmtpClient

{

Host ="smtp.gmail.com",

Port = 587,

EnableSsl =true,

DeliveryMethod = SmtpDeliveryMethod.Network,

UseDefaultCredentials =false,

Credentials =newNetworkCredential(fromAddress.Address, frompass), Timeout = 200000

};

using(varmessage =newMailMessage(fromAddress, toAddress) {

Subject = subject,

Body = body

})

{

smtp.Send(message);

}

// Chỉ đặt otpEntered thành true sau khi gửi thành công

MessageBox.Show("OTP đã được gửi qua mail!");

otpEntered =true;

}

catch(Exception ex)

{

MessageBox.Show(ex.Message);

}

Trang 7

stringaccountSid ="ACd9d358c3ece319c6ff95d71001ae02bf";//SID

stringauthToken ="447b8e56607d05aa734376452a553127";

TwilioClient.Init(accountSid, authToken);

stringotpCode = otp.ToString();// Mã OTP đã tạo

try

{

varmessageOptions =newCreateMessageOptions(newPhoneNumber("+84337883917"));//đây là số mình dk trên hệ thống dùng thử nên chỉ được 1 số để nhận tin nhắn qua API Nếu muốn được nhập số nào trả OTP về số đó thì tốn rất nhiều tiền nên mn thông cảm vì kinh tế k cho phép nhé!

messageOptions.From =newPhoneNumber("+15168644357");//Số Tổng đài

messageOptions.MessagingServiceSid ="MGcef5150a17a24a6a3e889ab297819b7c";

messageOptions.Body = otp.ToString();

phoneOTP = otp.ToString();

varmessage = MessageResource.Create(messageOptions);

Console.WriteLine(message.Body);

MessageBox.Show("OTP gửi thành công!","Success", MessageBoxButtons.OK);

otpEntered =true;

}

catch(Exception ex)

{

MessageBox.Show($"Failed to send OTP Error:{ex.Message}","Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

Code xác nhận Mã OTP

private voidbtnxacnhan_Click(objectsender, EventArgs e)

{

if(otpEntered)

{

stringenteredOTP = txtcheckOTP.Text.Trim();

if(!string.IsNullOrEmpty(enteredOTP))

{

Console.WriteLine($"phoneOTP:{phoneOTP} );"

Console.WriteLine($"enteredOTP:{enteredOTP} );"

if(phoneOTP.Equals(enteredOTP))// So sánh với mã OTP của số điện thoại

{

MessageBox.Show("Xác minh thành công OTP");

}

else

{

MessageBox.Show("OTP Không chính xác");

}

}

else

{

MessageBox.Show("Vui lòng nhập mã OTP trước khi xác minh.");

}

}

else

Trang 8

}

}

}

V.Full code

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Linq.Expressions;

usingSystem.Net;

usingSystem.Net.Mail;

usingSystem.Runtime.Remoting.Contexts;

usingSystem.Text;

usingSystem.Threading.Tasks;

usingSystem.Windows.Forms;

using staticdetailaptrinhwindao.Form1;

using staticSystem.Windows.Forms.VisualStyles.VisualStyleElement.ListView;

using staticSystem.Windows.Forms.VisualStyles.VisualStyleElement.StartPanel;

usingTwilio;

usingTwilio.Rest.Api.V2010.Account;

usingTwilio.Types;

namespacedetailaptrinhwindao

{

public partial classForm1: Form

{

privateList<User> users =newList<User>();

privateRandom random =newRandom();

private boolotpEntered =false;

private intotp;

private stringphoneOTP;

publicForm1()

{

InitializeComponent();

}

private boolIsEmailOrPhoneExists(stringemailOrPhone)

{

returnusers.Any(u => u.Email == emailOrPhone || u.NumBerPhone == emailOrPhone); }

private boolIsEmailFormat(stringinput)

{

try

{

varaddress =newSystem.Net.Mail.MailAddress(input);

returnaddress.Address == input;

Trang 9

return false;

}

}

private voidtxtemailhaysdt_TextChanged(objectsender, EventArgs e) {

stringemailOrPhone = txtemailhaysdt.Text.Trim();

if(IsEmailOrPhoneExists(emailOrPhone))

{

MessageBox.Show("Tài khoản này đã tồn tại!");

}

}

private voidForm1_Load(objectsender, EventArgs e)

{

txtemailhaysdt.TextChanged += txtemailhaysdt_TextChanged;

}

private voidbtnthoat_Click(objectsender, EventArgs e)

{

Application.Exit();

}

private voidbtndangki_Click(objectsender, EventArgs e)

{

if(txtrepassword.Text != txtpassword.Text)

{

MessageBox.Show("Mật khẩu không trùng khớp, vui lòng nhập lại","Lỗi"); txtrepassword.Clear();

return;

}

else

{

stringnameid = txtname.Text;

stringemailOrPhoneNumber = txtemailhaysdt.Text;

stringpassword =this.txtpassword.Text;

if(!otpEntered)

{

MessageBox.Show("Vui lòng gửi mã OTP trước khi đăng ký.");

return;

}

stringenteredOTP = txtcheckOTP.Text.Trim();

if(string.IsNullOrEmpty(enteredOTP))

{

MessageBox.Show("Vui lòng nhập mã OTP trước khi đăng ký.");

return;

}

if(IsEmailOrPhoneExists(emailOrPhoneNumber))

{

MessageBox.Show("Email hoặc số điện thoại đã tồn tại!"); }

else

{

Trang 10

name = nameid,

Email = emailOrPhoneNumber,

PasswordHash = password,

};

users.Add(newUser);

MessageBox.Show("Đăng ký thành công!");

DanhsachTaiKhoan.Items.Add($"Tên người dùng:{nameid}||| Tên tài khoản:

{emailOrPhoneNumber}");

txtname.Clear();

txtpassword.Clear();

txtrepassword.Clear();

txtemailhaysdt.Clear();

txtcheckOTP.Clear();

otpEntered =false;

}

}

}

public classUser

{

public stringname {get set; ; }

public stringEmail {get set; ; }

public stringNumBerPhone {get set; ; }

public stringPasswordHash {get set; ; }

}

private voidtxtpassword_TextChanged(objectsender, EventArgs e)

{

txtpassword.PasswordChar = ;'*'

}

private voidtxtrepassword_TextChanged(objectsender, EventArgs e)

{

txtrepassword.PasswordChar = ;'*'

}

private voidbtnGuiOTP_Click(objectsender, EventArgs e)

{

try

{

otp = random.Next(100000, 100000000);

varfromAddress =newMailAddress("hai099089@gmail.com");

vartoAddress =newMailAddress(txtemailhaysdt.ToString());

const stringfrompass ="bvrd eiqw khei kzpw";

const stringsubject ="OTP Code";

stringbody = otp.ToString();

varsmtp =newSmtpClient

{

Host ="smtp.gmail.com",

Trang 11

DeliveryMethod = SmtpDeliveryMethod.Network,

UseDefaultCredentials =false,

Credentials =newNetworkCredential(fromAddress.Address, frompass),

Timeout = 200000

};

using(varmessage =newMailMessage(fromAddress, toAddress)

{

Subject = subject,

Body = body

})

{

smtp.Send(message);

}

// Chỉ đặt otpEntered thành true sau khi gửi thành công

MessageBox.Show("OTP đã được gửi qua mail!");

otpEntered =true;

}

catch(Exception ex)

{

MessageBox.Show(ex.Message);

}

stringaccountSid ="ACd9d358c3ece319c6ff95d71001ae02bf";

stringauthToken ="447b8e56607d05aa734376452a553127";

TwilioClient.Init(accountSid, authToken);

stringotpCode = otp.ToString();// Mã OTP đã tạo

try

{

varmessageOptions =newCreateMessageOptions(

newPhoneNumber("+84337883917"));

messageOptions.From =newPhoneNumber("+15168644357");

messageOptions.MessagingServiceSid ="MGcef5150a17a24a6a3e889ab297819b7c"; messageOptions.Body = otp.ToString();

phoneOTP = otp.ToString();

varmessage = MessageResource.Create(messageOptions);

Console.WriteLine(message.Body);

MessageBox.Show("OTP gửi thành công!","Success", MessageBoxButtons.OK);

otpEntered =true;

}

catch(Exception ex)

{

MessageBox.Show($"Failed to send OTP Error:{ex.Message}","Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

}

}

Trang 12

if(otpEntered)

{

stringenteredOTP = txtcheckOTP.Text.Trim();

if(!string.IsNullOrEmpty(enteredOTP))

{

Console.WriteLine($"phoneOTP:{phoneOTP} );"

Console.WriteLine($"enteredOTP:{enteredOTP} );"

if(phoneOTP.Equals(enteredOTP))// So sánh với mã OTP của số điện thoại

{

MessageBox.Show("Xác minh thành công OTP");

}

else

{

MessageBox.Show("OTP Không chính xác");

}

}

else

{

MessageBox.Show("Vui lòng nhập mã OTP trước khi xác minh."); }

}

else

{

MessageBox.Show("Vui lòng gửi mã OTP trước khi xác minh.");

}

}

}

}

Ngày đăng: 20/08/2024, 15:09

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w