Cơ chế đăng nhập ứng dụng web, app bằng tài khoản google+/gmail code ví dụ bằng JSP-Servlet/SpringMVC/SpringBoot
Nguồn: https://stackjava.com/install/tao-ung-dung-google-de-dang-nhap-thay-tai-khoan.html Trong nhiều trường hợp, khi đăng nhập web, đăng ký ứng dụng, tài khoản… ta thường thấy có chức đăng nhập bằng tài khoản google+ mà không cần tài khoản của trang web/ứng dụng đó. Ví dụ đăng nhập ...
Nguồn: https://stackjava.com/install/tao-ung-dung-google-de-dang-nhap-thay-tai-khoan.html
Trong nhiều trường hợp, khi đăng nhập web, đăng ký ứng dụng, tài khoản… ta thường thấy có chức đăng nhập bằng tài khoản google+ mà không cần tài khoản của trang web/ứng dụng đó.
Ví dụ đăng nhập trang itviec.com:
Việc đăng nhập thông qua một bên thứ ba như google dựa trên cơ chế OAuth2.
Khi bạn chấp nhận đăng nhập bằng tài khoản google, ứng dụng web sẽ yêu cầu truy cập một số thông tin trong tài khoản google của bạn, để từ đó tự động đăng ký tài khoản và tiến hành đăng nhập.
Tạo google app để đăng nhập với google
Truy cập Google API Console để tạo ứng dụng. (bạn cũng có thể sử dụng lại ứng dụng đã tạo trước đó)
Nhập tên và id cho ứng dụng.
Kích hoạt dịch vụ Google+ API bằng cách:
- Nhập google+ API vào ô search
- Chọn mục Google+ API
- Ấn nút enable và chờ API được kích hoạt
Tạo chứng nhận cho API như sau:
- Chọn mục “Credentials” ở bên trái và chọn tab “OAuth consent screen”
- Chọn Email Address, nhập Product Name, và lưu lại.
Chuyển sang tab Credentials.
- Click button “Create credentials và chọn “OAuth client ID”
Phần application type chọn “Web application” (Ở đây mình sử dụng để đăng nhập cho ứng dụng web)
Phần “Authorized JavaScript origins” nhập tên miền của ứng dụng web
Phần “Authorized redirect URI” nhập đường dẫn của server xử lý code gửi về từ google.
Sau khi tạo nó sẽ hiện ra client ID và client secret
Bạn cũng có thể xem lại chi tiết về client id và client secret bằng cách chọn vào tên của credential vừa tạo ở tab “Credentials”
Dưới đây là code ví dụ đăng nhập ứng dụng web bằng tài khoản google: Mình thực hiện gửi request lấy code, access token bằng cách thủ công để mọi người có thể hiểu cách gửi/nhận và trao đổi thông tin giữa ứng dụng Google API Console với google sau đó gửi thông tin về cho ứng dụng web.
- Code ví dụ JSP Servlet login bằng Google (Gmail/Google+)
- Code ví dụ Spring Boot Security login bằng Google (Gmail)
- Code ví dụ Spring MVC đăng nhập bằng google/gmail