Yêu cầu thg 3 30, 2018 2:25 CH 417 1 1
  • 417 1 1
+1

Authencation Restfull API Nodejs

Chia sẻ
  • 417 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 CÂU TRẢ LỜI


Đã trả lời thg 4 2, 2018 12:33 SA
Đã được chấp nhận
+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 😄

Chia sẻ
Avatar Haz @ntmy.khtn
thg 4 2, 2018 2:43 SA

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

Avatar Haz @ntmy.khtn
thg 4 2, 2018 2:51 SA

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!

Avatar Tran Duc Thang @thangtd90
thg 4 2, 2018 2:59 SA

@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.

Avatar Haz @ntmy.khtn
thg 4 2, 2018 3:45 SA

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

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí