×

Tích hợp Google và Facebook login API vào ứng dụng C#

Việc tích hợp hệ thống đăng nhập của Google và Facebook vào ứng dụng C# giúp người dùng tiết kiệm thời gian và dễ dàng tiếp cận dịch vụ của bạn hơn. Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng các API của Google và Facebook để thực hiện mục tiêu này.

1. Chuẩn bị môi trường

Trước khi bắt đầu, bạn cần có một tài khoản Google và Facebook dành cho nhà phát triển:

2. Tạo project trên Google Developers Console

  1. Đăng nhập vào Google Developers Console.
  2. Tạo một dự án mới và đặt tên cho nó.
  3. Trong bảng điều khiển của dự án, chọn "OAuth consent screen".
  4. Cấu hình màn hình xác nhận của OAuth, nhập thông tin yêu cầu và lưu.
  5. Chọn "Credentials" và tạo "OAuth 2.0 Client IDs".
  6. Lấy Client ID và Client Secret, bạn sẽ cần chúng để cấu hình trong ứng dụng.

3. Tạo ứng dụng trên Facebook Developers

  1. Đăng nhập vào Facebook for Developers.
  2. Tạo một ứng dụng mới và chọn loại ứng dụng phù hợp.
  3. Điền tên ứng dụng và email liên hệ.
  4. Chọn "Set Up" trong mục Facebook Login.
  5. Cấu hình OAuth Redirect URI: đây sẽ là URL mà Facebook gửi mã phản hồi sau khi người dùng xác nhận đăng nhập.
  6. Lấy App ID và App Secret để sử dụng trong ứng dụng của bạn.

4. Tích hợp Google Login vào ứng dụng C#

Trước tiên, cần thêm các thư viện nuget cần thiết:

Install-Package Google.Apis.Auth
Install-Package Microsoft.AspNetCore.Authentication.Google

Cấu hình Google Authentication

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(options =>
    {
        options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
        options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
        options.DefaultChallengeScheme = GoogleDefaults.AuthenticationScheme;
    })
    .AddCookie()
    .AddGoogle(options =>
    {
        options.ClientId = "YOUR_GOOGLE_CLIENT_ID";
        options.ClientSecret = "YOUR_GOOGLE_CLIENT_SECRET";
    });
}

5. Tích hợp Facebook Login vào ứng dụng C#

Thêm các thư viện nuget cần thiết:

Install-Package Microsoft.AspNetCore.Authentication.Facebook

Cấu hình Facebook Authentication

public void ConfigureServices(IServiceCollection services)
{
    services.AddAuthentication(options =>
    {
        options.DefaultAuthenticateScheme = CookieAuthenticationDefaults.AuthenticationScheme;
        options.DefaultSignInScheme = CookieAuthenticationDefaults.AuthenticationScheme;
        options.DefaultChallengeScheme = FacebookDefaults.AuthenticationScheme;
    })
    .AddCookie()
    .AddFacebook(options =>
    {
        options.AppId = "YOUR_FACEBOOK_APP_ID";
        options.AppSecret = "YOUR_FACEBOOK_APP_SECRET";
    });
}

6. Xử lý trong Controller

Bạn có thể xử lý yêu cầu đăng nhập và đăng xuất trong controller của bạn:

public class AccountController : Controller
{
    [HttpGet("~/login")]
    public IActionResult Login(string returnUrl)
    {
        return Challenge(new AuthenticationProperties { RedirectUri = returnUrl ?? "/" });
    }

    [HttpGet("~/logout")]
    public IActionResult Logout()
    {
        return SignOut(CookieAuthenticationDefaults.AuthenticationScheme);
    }
}

7. Xử lý Callback

Để xử lý callback từ Google và Facebook, bạn cần cấu hình URI callback giống với thông tin đã cấu hình trên các nền tảng đó. Ví dụ với Google:

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseExceptionHandler("/Home/Error");
        app.UseHsts();
    }

    app.UseHttpsRedirection();
    app.UseStaticFiles();

    app.UseRouting();

    app.UseAuthentication();
    app.UseAuthorization();

    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllerRoute(
            name: "default",
            pattern: "{controller=Home}/{action=Index}/{id?}");
        endpoints.MapRazorPages();
    });
}

Kết luận

Với các bước trên, bạn đã tích hợp thành công Google và Facebook login vào ứng dụng C# của mình. Việc này không chỉ giúp cải thiện trải nghiệm người dùng mà còn giúp bạn dễ dàng quản lý và xác thực người dùng hơn. Chúc bạn thành công trong việc phát triển ứng dụng!

Comments