2015-03-11 20 views
6

sau 1 ngày nghiên cứu, tôi đã kết thúc với sự cố sau. Tôi đang xây dựng một ứng dụng web với ember.js và hiện tôi đang triển khai đăng nhập LinkedIn, sử dụng javascript được liên kết sdk. Vấn đề mà tôi có là sau khi tôi nhận được thông tin người dùng (mã thông báo, email, tên và vv) tôi cần phải xác minh mã thông báo này trên phía máy chủ để phiên lớn. Thật không may, tài liệu không rõ ràng cho tôi. Tôi có thể truy cập mã thông báo (hoặc loại mã thông báo) bằng cách sử dụng IN.ENV.auth, nhưng khi tôi cố gắng xác thực mã thông báo từ cả hai, tôi nhận được "yêu cầu không hợp lệ". Về phía server Tôi đang sử dụng nút và một mẫu mã trông giống như rằng:LinkedIn xác minh người dùng auth token phía máy chủ

var request = require('request'); 
var options = { 
    url: 'https://www.linkedin.com/uas/oauth2/accessToken?grant_type=authorization_code&code=TOKEN_RECIEVED_THROUGH_IN.ENV.auth&redirect_uri=my-domain&client_id=API_CLIENT_ID&client_secret=API_SECRET_KEY' 
}; 
request(options,function(err,res,body){ 
    console.log(body); 
}); 

Các phản hồi từ sdk là như thế:

anonymous_expires_in: 1800 
anonymous_token: "4u948tas123asfK9DJx9HFYJgcsBFlhIFu93gG" 
api_key: "API_KEY" 
is_set_client_auth_cookie: false 
member_id: "4a13sdasFeD" 
oauth_expires_in: 1800 
oauth_token: "66Dy9V123lL7H823ddl-5L-KVmg184k0dhAaS" 

Cảm ơn trước.

Trả lời

2

Mã thông báo xác thực của LinkedIn được cấp từ SDK JS và OAuth phía máy chủ không giống nhau.

Có một quá trình tài liệu trên trang web của nhà phát triển của LinkedIn giải thích làm thế nào để trao đổi một mã thông báo JS cho một API REST/server-side mã thông báo: https://developer-programs.linkedin.com/documents/exchange-jsapi-tokens-rest-api-oauth-tokens

+2

URL, cần phải thêm một số chi tiết cũng trả lời. câu trả lời này không hữu ích bây giờ –

+0

@ SameerKazi, hi, bạn đã quản lý để tìm giải pháp? Tôi đã làm việc với cách tiếp cận tương tự, nhưng tôi cũng không thể tìm thấy tài liệu đó. Tôi đã đọc rằng điều này sẽ bị xóa trong tương lai, vì OAuth2 sẽ chỉ là tùy chọn có mã thông báo truy cập có thể được sử dụng cho các cuộc gọi REST API. – EnterSB

+1

Hiện tại không có điểm cuối có sẵn để thực hiện xác thực mã thông qua API LinkedIn. Bạn chỉ có thể yêu cầu (và một trường hợp phụ đặc biệt: làm mới) mã thông báo OAuth 2. –

7

Dường như nếu bạn chỉ cần thêm tiêu đề oauth_token-GET yêu cầu, nó hoạt động:

GET /v1/people/~:(id,firstName,lastName,siteStandardProfileRequest,picture-url,email-address)?format=json HTTP/1.1 
Host: api.linkedin.com 
oauth_token: your-token-here 

PS Nhưng tôi không chắc chắn nó sẽ làm việc liên tục vì các tài liệu tôi đã không đọc

+1

đã làm việc cho tôi. cảm ơn! – Zackie

+0

Cảm ơn, đơn giản và sạch sẽ, phù hợp với tôi –

1

Đối với một người nào đó mà cần phải kiểm tra tính hợp lệ của thẻ qua Postman hoặc vv ...

Bạn có thể đạt được điều này bằng cách yêu cầu phải có thông số tiếp theo ...

Ví dụ: không tìm thấy

Method GET: 
https://api.linkedin.com/v1/people/~?format=json 

Headers: 
Authorization Bearer "here you add your access token" 
Content-Type application/json 
x-li-src msdk 
Các vấn đề liên quan