Asked Mar 30th, 2018 2:25 PM 153 1 1
  • 153 1 1
+1

Authencation Restfull API Nodejs

Share
  • 153 1 1

Chào mọi người! Hôm nay e có câu hỏi như sau. Hiện tại e đang viết server cung cấp API ra ngoài cho user dùng! Bài toán đặt ra là bảo mât về api! Vì api mình cung cấp cho user bên ngoài dùng. Giống như tụi cung cấp cổng thanh toán ạ (stripe, paytrace, ...). Có những thắc mắt như sau mong mọi người giúp đỡ?

  1. Chỉ cho phép API gọi từ server của user (không cho phép gọi thẳng từ client của user): Phần này e biết bằng cách Trust IP của user (Khi user đăng ký account để sử dụng API thì e buộc họ phải cung cấp IP server). Cách này liệu có khả thi?????
  2. Khi user đăng ký account bên e. Thì bên e sẽ generator serect key cho user. Và user dùng serect key đó để call api của e cung cấp. Chỗ này ngoài việc dùng package crypto có sẵn của node để tạo ra serect key cho user thì còn cách nào hay hơn không ạ?
  3. Và ai có kinh nghiệm về phần này hoặc có link nào cho em tham khảo không ạ!!! Cảm ơn mọi người nhiều!!

1 ANSWERS


Answered Apr 2nd, 2018 12:33 AM
Accepted
+2

Để bảo mật cho API của server thì bạn có thể sử dụng OAuth 2. Nó là một authorization framework, tức là một tiêu chuẩn chung được định nghĩa cho cả client và server để xác thực quyền của một request.

Phía server của bạn thực hiện việc xác thực request theo chuẩn OAuth 2, thì phía client người ta cũng viết theo chuẩn OAuth 2 là cả 2 bên có thể hoạt động được với nhau, mà bạn không cần phải chia sẻ quá nhiều thông tin liên quan đến server của bạn cho họ. Các công việc liên quan đến generate client credentials thì cũng có chuẩn luôn, dùng sẵn một package OAuth 2 đã được cộng đồng viết thì hầu như bạn chả phải làm gì mấy 😄

Share
Haz @ntmy.khtn
Apr 2nd, 2018 2:43 AM

Cảm ơn bạn nhiều! Để mình tham khảo link của bạn gửi 😃

0
| Reply
Share
Haz @ntmy.khtn
Apr 2nd, 2018 2:51 AM

Thư viện này là mình install rồi tự setup auth2 cho sv (Không dùng bên thứ 3?) mình rồi cung cấp cho client hả bạn! Vì mình ko có dùng resource user của social. User này của hệ thống mình đang handle!

0
| Reply
Share
Thang Tran Duc @thangtd90
Apr 2nd, 2018 2:59 AM

@ntmy.khtn Đúng rồi bạn, bạn setup ở server của mình, lúc đó server của bạn trở thành một server OAuth 2.

Sau đó bạn tạo credentials rồi cung cấp cho client, thì chỉ những client có credentials hợp lệ mới có thể truy cập vào API của bạn mà thôi.

0
| Reply
Share
Haz @ntmy.khtn
Apr 2nd, 2018 3:45 AM

Ok Cảm ơn bạn nhiều! Chúc bạn ngày mới tốt lành 😃

0
| Reply
Share