Khắc Phục Vấn Đề Đăng Nhập LinkedIn OAuth — Cập Nhật OpenID Connect
Nếu bạn đang cố gắng triển khai chức năng đăng nhập LinkedIn gần đây và bỗng dưng nhận được những lỗi "Có gì đó không ổn", bạn không phải là người duy nhất. LinkedIn đã âm thầm giới thiệu một thay đổi lớn trong hệ thống OAuth của mình — và mã đăng nhập cũ đã ngừng hoạt động.
Bài viết này sẽ hướng dẫn bạn những thay đổi đã xảy ra, lý do tại sao các ứng dụng cũ không hoạt động, và cách khắc phục bằng cách sử dụng phương pháp OpenID Connect mới.
⚠️ Những gì đã hỏng
Trước đây, bạn có thể lấy dữ liệu người dùng với các phạm vi như:
r_liteprofile
r_emailaddress
Sau đó gọi đến các endpoint:
https://api.linkedin.com/v2/me
https://api.linkedin.com/v2/emailAddress
Tuy nhiên, với các ứng dụng mới được tạo trong cổng thông tin phát triển LinkedIn, những phạm vi và endpoint này không còn hoạt động nữa. Nếu bạn thử, bạn sẽ thấy các lỗi như:
- "Có gì đó không ổn"
- "Phạm vi không hợp lệ"
💡 Những gì đã thay đổi
LinkedIn đã chuyển đổi quy trình đăng nhập của mình sang sử dụng OpenID Connect (OIDC) — một lớp danh tính được xây dựng trên nền tảng OAuth 2.0.
Những thay đổi chính:
- Nhãn đăng nhập mới: “Đăng nhập với LinkedIn bằng OpenID Connect”
- Yêu cầu kích hoạt quyền truy cập OpenID Connect cho ứng dụng của bạn.
Các phạm vi hỗ trợ mới:
openid
profile
email
Endpoint mới để lấy thông tin hồ sơ người dùng:
https://api.linkedin.com/v2/userinfo
Điều này có nghĩa là các phạm vi và endpoint cũ không còn hoạt động cho các ứng dụng mới.
🛠 Cách Khắc Phục Vấn Đề Đăng Nhập OAuth
Dưới đây là cách tiếp cận đúng để làm cho chức năng đăng nhập LinkedIn OAuth hoạt động trở lại:
Bước 1 — Tạo một Ứng Dụng Mới
- Truy cập vào Cổng Thông Tin Phát Triển LinkedIn.
- Tạo một ứng dụng mới.
- Điền thông tin cơ bản (tên, logo, URL quyền riêng tư — có thể là
http://localhost
). - Kích hoạt OpenID Connect trong phần “Sản phẩm”.
- Sao chép Client ID và Client Secret của bạn.
Bước 2 — Đặt Redirect URI của bạn
- Thêm Redirect URI của bạn (như
http://localhost/project/callback
) trong cài đặt OAuth 2.0 của ứng dụng. - Điều này phải khớp chính xác với những gì bạn sử dụng trong mã của mình.
Bước 3 — Triển Khai Luồng OAuth
- URL ủy quyền:
https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=YOUR_CLIENT_ID&redirect_uri=YOUR_REDIRECT_URI&scope=openid%20profile%20email
- Trao đổi mã lấy token:
POST https://www.linkedin.com/oauth/v2/accessToken
grant_type=authorization_code&code=AUTH_CODE&redirect_uri=YOUR_REDIRECT_URI&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET
- Lấy thông tin người dùng:
GET https://api.linkedin.com/v2/userinfo
Authorization: Bearer ACCESS_TOKEN
Endpoint userinfo
này trả về tên, email và ID LinkedIn của người dùng.
✅ Tóm Tắt
Nếu chức năng đăng nhập LinkedIn của bạn đột ngột ngừng hoạt động:
- Đừng tái sử dụng các ứng dụng cũ được tạo trước thay đổi này.
- Tạo một ứng dụng mới, kích hoạt OpenID Connect, và sử dụng:
- Phạm vi:
openid
,profile
,email
- Endpoint:
https://api.linkedin.com/v2/userinfo
- Phạm vi:
Khi bạn áp dụng những thay đổi này, chức năng đăng nhập LinkedIn của bạn sẽ hoạt động lại bằng cách sử dụng luồng OpenID Connect hiện đại và an toàn.
📌 Mẹo Cuối
- Luôn theo dõi tài liệu phát triển của LinkedIn — những thay đổi OAuth như thế này thường được giới thiệu một cách âm thầm và có thể làm hỏng các tích hợp hiện có mà không có cảnh báo.
Thực Hành Tốt Nhất
- Đọc tài liệu: Nên thường xuyên kiểm tra tài liệu của LinkedIn để nắm bắt những thay đổi mới nhất.
- Không sử dụng mã cũ: Hãy chắc chắn rằng bạn không sử dụng mã từ các ứng dụng đã lỗi thời.
- Kiểm tra kỹ lưỡng: Trước khi triển khai, hãy kiểm tra kỹ lưỡng mã của bạn để đảm bảo mọi thứ hoạt động như mong đợi.
Các Cạm Bẫy Thường Gặp
- Quên kích hoạt OpenID Connect: Đây là bước cần thiết nhưng thường bị bỏ qua.
- Sai Redirect URI: Phải đảm bảo rằng URI này khớp chính xác với mã của bạn.
Mẹo Hiệu Suất
- Sử dụng cache: Lưu trữ mã truy cập để giảm số lần gọi API.
- Thực hiện kiểm tra lỗi: Đảm bảo bạn xử lý các lỗi có thể xảy ra khi gọi API để tránh trải nghiệm người dùng tồi tệ.
Hỏi Đáp (FAQ)
- Tại sao tôi không thể sử dụng mã cũ? Vì LinkedIn đã thay đổi cấu trúc OAuth và các phạm vi cũ không còn hiệu lực.
- Làm thế nào để biết mã của tôi có hoạt động không? Kiểm tra kỹ lưỡng các phản hồi từ API và đảm bảo rằng bạn đang sử dụng đúng endpoint và phạm vi.
Kết Luận
Việc thay đổi trong hệ thống OAuth của LinkedIn có thể gây khó khăn cho các nhà phát triển. Tuy nhiên, bằng cách làm theo hướng dẫn này, bạn có thể nhanh chóng khắc phục vấn đề và tiếp tục sử dụng tính năng đăng nhập LinkedIn trong ứng dụng của mình. Hãy luôn cập nhật thông tin mới từ LinkedIn và đảm bảo rằng bạn đang sử dụng các phương pháp mới nhất để tối ưu hóa trải nghiệm người dùng.
Hãy bắt tay vào việc cập nhật ứng dụng của bạn ngay hôm nay!