Xây dựng API login Google, Facebook, Twitter hay Github với server laravel cho các dự án về App Mobile

Xây dựng API login Google, Facebook, Twitter hay Github với server laravel cho các dự án về App Mobile

Nếu bạn thấy hay hãy like share cho bạn bè cùng biết nhé !
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  

[wr-widget-reviews source=””]

Lời nói đầu

Trong những năm gần đây, sự thông dụng của smartphone cũng làm ngành Lập trình phát triển ứng dụng di động (Mobile Application Development) có những bước tiến lớn. Ngày càng nhiều các ứng dụng mobile app được ra đời cùng với sự tiện ích hơn, dễ sử dụng hơn (đăng nhập thuận tiện hơn, giao diện dễ dùng, tốc độ nhanh hơn,…)

10 ngôn ngữ lập trình phổ biến nhất 2018

Lập trình là gì và lập trình viên làm gì?

Một số câu hỏi phỏng vấn Android bạn nên lưu ý

Cheat sheet Java 2018 – Bí kíp cho các developer

Object, Mutable and Immutable in Python

Cách sử dụng hàm lồng nhau trong Python

Sức mạnh của Javascript, viết app desktop bằng Electron

Xây dựng API login Google, Facebook, Twitter hay Github với server laravel cho các dự án về App Mobile

Garbage Collector

Join và subquery, ai nhanh hơn

ví dụ đăng nhập sử dụng PDO trong php

Xây dựng API login Google, Facebook, Twitter hay Github với server laravel cho các dự án về App Mobile

Cách các app đăng nhập

May mắn cho mình cũng được làm việc trong team phát triển app mobile với vai trò là backend developer. Tuy nhiên vấn đề chính mà mình đang hướng đến tại đây là “Xây dựng API login Google, Facebook, Twitter hay Github với server laravel cho các dự án về App Mobile”. Với việc đăng nhập bằng Google, Facebook, Twitter hay Github, … bạn sẽ không phải mất thời gian làm công đoạn đăng ký phức tạp, nhập 1 đống input thông tin, rồi còn phải chờ email để active tài khoản bla…bla như trước đây nữa. Để đăng nhập vào app chỉ cần chọn mạng xã hội mà bạn muốn đăng nhập. Ví dụ bạn muốn kết nối với mạng xã hội Facebook chẳng hạn. Bấm vào icon Facebook rồi đồng ý chuyển hướng đến trang đăng nhập của facebook

Xây dựng API login Google, Facebook, Twitter hay Github với server laravel cho các dự án về App Mobile

Sau khi đăng nhập thành công thì cũng đồng nghĩa bạn đã đăng nhập thành công vào ứng dụng. ?

Ý tưởng đăng nhập cho app và server

  • Bên app sẽ setup package Facebook SDK , Google SDK. Các package đều hỗ trợ cho hệ điều hành Android và Ios
    • Facebook: https://developers.facebook.com/docs/ios/ và https://developers.facebook.com/docs/android/
    • Google: https://developers.google.com/identity/sign-in/android/start và https://developers.google.com/identity/sign-in/ios/start
  • Sau khi bên app cài đặt và sử dụng các package cho các mạng xã hội. Tiến hành đăng nhập tại app, response trả về sẽ gồm có: access_tokenprofile user, …. Nhưng cái quan trọng nhất mà bên server cần ở đây chỉ là access_token.
  • Bên server viết 1api authentication cho app và yêu cầu 1 request từ bên app là access_tokenmà bên app vừa nhận được ở trên. Tại server sẽ gửi lại 1 request lên trên facebook, google,… để xác định đúng phiên đăng nhập cũng như lấy lại thông tin user từ các mạng xã hội. Sau đó sẽ check email (facebook, google) xem email này đã được đăng ký từ hệ thống chưa. Nếu đăng ký rồi => tự động đăng nhập app, nếu chưa tồn tại, tự động đăng ký cho user dựa vào thông tin nhận được từ mạng xã hội (tên, avatar,…).

Xây dựng API

  • Chuẩn bị:
    • Laravel Passport: https://laravel.com/docs/5.7/passport
    • GuzzleHttp: http://docs.guzzlephp.org/en/stable/
    • OAuth:
      • Facebook: https://developers.facebook.com/docs/graph-api/using-graph-api
      • Google: https://developers.google.com/identity/protocols/OAuth2InstalledApp

    …..

  • Xây dựng API
    • Cài đặt Laravel Passport:

Sau khi tải laravel/passport về project trong migration sẽ tạo các table của nó, nên chúng ta hãy tiếp tục chạy migrate để thêm vào database.

Tiếp theo chúng ta cần chạy command passport:install, command này sẽ tạo một encryption keys dùng để bảo mật cho access token. Nó sẽ tạo ra “personal access” and “password grant” clients là 2 lựa chọn cho bảo mật access token.

Trong Models User thêm như bên dưới.

Trong config/auth.php sửa lại driver api là passport.

Dưới đây sẽ là function login của chúng ta. Request nhận vào chính là access_token và provider chúng ta cũng có thể gửi thẳng qua url cũng được.

Đăng nhập với google, server sẽ gửi 1 request ứng với access_token của nó và lấy ra profile của user.

Tương tự facebook cũng vậy, nó cũng trả về các thông tin mà ta cần.

Sau khi lấy được profile của user trên các mạng xã hội, việc còn lại là kiểm tra xem email của user đã được đăng ký tại hệ thống của chúng ta chưa.

Tổng kết:

Kết luận

Việc xây dựng API login Google, Facebook, Twitter hay Github với server laravel cho các dự án về App Mobile cũng khá đơn giản nhưng nó mang lại vô cùng tiện lợi cho người dùng ???

Bí quyết SEO Youtube hiệu quả đạt top #10 chỉ trong 7 ngày

3 bước đơn giản để cải thiện seo

9 cách seo web cải thiện thứ hạng tìm kiếm trên google cho website của bạn

5 xu hướng SEO sẽ quan trọng nhất trong năm 2019

Hướng dẫn về SEO của chia sẻ kiến thức

Tăng tốc SEO website của bạn với AI

Hệ Thống PBN Là Gì trong SEO?. Đừng chết vì thiếu hiểu biết!.

Tại sao cần phải nghiên cứu từ khóa đầu tiên khi SEO

SEO Youtube A-Z: đưa video của bạn lên top #1 tìm kiếm Youtube

Làm thế nào để SEO từ khóa lên top Google?

Yoast SEO và All in One SEO Pack – Đâu là SEO Plugin tốt nhất?

Cách sử dụng plugin Yoast SEO bổ trợ SEO Onpage

7 kỹ thuật xây dựng liên kết nội bộ (internal link) tăng thứ hạng SEO

Thủ thuật viết & tối ưu thẻ tiêu đề, thẻ mô tả chuẩn SEO

SEO là gì? Làm SEO có khó & có thể kiếm tiền với nghề này không?

Google Ads là gì? Vì sao nên chọn hình thức quảng cáo này đầu tiên?