Xin chào mọi người, lại là mình đây. Ở đây chim hót nghe vui tai lắm mọi người ơi, đúng là không có ở đâu yên bình hơn ở nhà. Mình đang ở quê, hé hé. Vâng chúng ta cùng tiếp tục social login springboot oauth2.

Hôm nay mình sẽ nói về cách thứ 2, theo bài viết trước thì đây là cách “chính thống”.

Lưu ý

Như thường lệ phần social login springboot oauth2 này mình lại nói về các lưu ý trước:

  • RedirectUrl: là tham số chứa địa chỉ là url, nơi mà client muốn hiển thị form login. Điều này nghĩa là client gửi request yêu cầu login facebook, và đồng thời nói rằng tao-client muốn hiển thị form login ở redirectUrl.

Khó hiểu nhỉ … Giờ ví dụ như này: bạn muốn lấy trái táo từ thằng A, và đồng thời muốn nó đặt trái táo trên bàn nhà bạn. Bạn gửi thư cho thằng A: ê mày, đưa táo cho tao mày, nhớ đặt trên bàn nhà tao nhé. Trong trường hợp này cái bàn chính là redirectUrl nơi bạn muốn hiển thị form login facebook. Đấy, social login springboot oauth2 cũng tương tự.

Áp dụng ví dụ ở trên vào hệ thống social login springboot oauth2 của chúng ta nhé.

Sơ đồ

social login springboot oauth2 - laptrinhvnc.com
social login springboot oauth2 – laptrinhvnc.com

Mô tả

  1. Client gửi request login facebook tới backend của bạn:

    http://your_backend.com/facebook/login?redirect_url=http://your_client.com/facebook

  2. Backend của bạn sẽ gọi Api login facebook và truyền tham số redirect_url nhận được từ client vào đó:

    OAuth2FacebookToken = facebookApi.login(redirect_url)

  3. Facebook nhận được yêu cầu sẽ gửi một form login đến ‘redirect_url’.
  4. Client nhận được sẽ đăng nhập form login ở đây và cấp permission (nếu có) cho backend
  5. Facebook nhận được thông tin đăng nhập, kiểm tra thông tin, nếu user hợp lệ facebook sẽ trả token về cho backend.
  6. Backend nhận được token, dùng token truy vấn các thông tin cần thiết như tên, email, các permission… Và lưu tất cả chúng vào db (tùy người code có muốn lưu hay không).
  7. Backend generate ra một token khác (token riêng của system do bạn tự định nghĩa) trả về cho client, sau đó client và backend làm việc, nhận biết nhau dựa trên token mới này.

Ưu điểm và nhược điểm của social login springboot OAuth2

  1. Ưu điểm

    Với cách này, social login springboot của bạn sẽ đảm bảo bảo mật, vì chỉ có backend của bạn làm việc với facebook, các thông tin quan trọng không bị lộ. Thông tin quan trọng mình nói đến là facebook token. Với cách 1 ở bài viết trước thì facebook token nó chạy nhong nhong trên đường truyền 😅 đó là một ưu điểm, còn cái nào thì các bạn bổ sung thêm nhé

  2. Nhược điểm

    Chưa hình dung ra, có lẽ là server thao tác nhiều hơn chăng? Cũng ko hẳn, và cũng không đáng kể

Ố yeah, vậy là mình đã hoàn tất phần lý thuyết “chính thống” cho social login springboot oauth2 rồi nhé. Nhưng đây mới chỉ là lý thuyết, từ lý thuyết đến thực tế xa vời lắm. Vậy thì hãy đón đọc tiếp phần sau. Chúng ta sẽ bắt tay vào thực hành.

Trưa không nắng mà gió liu riu, dev viết bài thiu thiu buồn ngủ. Ngủ luôn

 

Updated… nhác viết bài thực hành quá, mượn code show lên cho các bạn luôn nè =]]

Tải code Social Login Springboot OAuth2

 

Có những thứ không liên quan đến lập trình những tôi vẫn phải ghi vào …. đơn giản vì tôi thích …. hahaha. Đọc dòng này thật chán nhỉ, vậy thì click link này nếu bạn thích trẻ em

Leave a Reply