Xác thực ứng dụng di động gốc bằng API REST


16

Tôi sẽ sớm bắt đầu một dự án mới, đó là nhắm mục tiêu ứng dụng di động cho tất cả các nền tảng di động lớn (iOS, Android, Windows). Nó sẽ là một kiến ​​trúc máy khách-máy chủ.

Ứng dụng này là cả thông tin và giao dịch. Đối với phần giao dịch, họ bắt buộc phải có tài khoản và đăng nhập trước khi giao dịch được thực hiện. Tôi chưa quen với phát triển di động, vì vậy tôi không biết phần xác thực được thực hiện trên các nền tảng này như thế nào. Các máy khách sẽ giao tiếp với máy chủ thông qua API REST. Sẽ sử dụng HTTPS ofcference.

Tôi chưa quyết định liệu tôi có muốn người dùng đăng nhập khi họ mở ứng dụng hay chỉ khi họ thực hiện giao dịch.

Tôi đã nhận được các câu hỏi sau đây:

1) Giống như ứng dụng Facebook, bạn chỉ nhập thông tin đăng nhập của mình khi bạn mở ứng dụng lần đầu tiên. Sau đó, bạn sẽ tự động đăng nhập mỗi khi bạn mở ứng dụng. Làm thế nào để thực hiện điều này? Chỉ đơn giản bằng cách mã hóa và lưu trữ thông tin đăng nhập trên thiết bị và gửi chúng mỗi khi ứng dụng khởi động?

2) Tôi có cần xác thực người dùng cho từng yêu cầu (giao dịch) được thực hiện cho API REST hoặc sử dụng phương pháp tiếp cận dựa trên mã thông báo không?

Xin vui lòng đề xuất các cách khác để xác thực.

Cảm ơn!

Câu trả lời:


14

Bạn chuyển tên người dùng / mật khẩu cho phương thức đăng nhập API RESTful của bạn và nó trả về mã thông báo truy cập. Mã thông báo truy cập đó chỉ là một chuỗi duy nhất (cho hệ thống).

Cửa hàng thiết bị (vẫn tồn tại) mã thông báo truy cập đó. Mỗi lần bạn gửi yêu cầu RESTful đến máy chủ, bạn đặt mã thông báo truy cập đó vào tiêu đề của yêu cầu HTTP. Máy chủ tìm thấy người dùng bằng mã thông báo truy cập và thành công đáp ứng yêu cầu.

Tên người dùng / mật khẩu không được lưu trữ trên thiết bị.


Các bên thứ ba (tin tặc, v.v.) có thể nắm giữ mã thông báo truy cập không?
Supercell

Tất nhiên là có thể. Đặc biệt nếu bạn không sử dụng HTTPS. Hầu hết các khách hàng email trực tuyến đang yêu cầu bạn đăng ký lại theo thời gian. Mã thông báo có thời gian hết hạn được đặt thành hai tuần chẳng hạn. Vì vậy, cứ hai tuần một lần bạn sẽ cần phải đăng ký lại.
c-smile

Cách mã thông báo truy cập sẽ được tạo và mã thông báo truy cập sẽ được lưu trên máy chủ.
Ghyath Serhal 7/2/2015

@ c-smile Facebook không bao giờ yêu cầu tôi đăng nhập lại. Do đó, tôi không thực sự thấy sự khác biệt giữa mật khẩu và mã thông báo truy cập.
Mickael Marrache

tôi biết điều này là khá muộn nhưng facebook và các nhà cung cấp khác phát hành mã thông báo làm mới, mã thông báo truy cập và thời gian hết hạn (đối với mã thông báo truy cập) vào thời điểm đăng nhập. mã thông báo truy cập tồn tại trong thời gian ngắn và mã thông báo truy cập mới có thể được tạo bằng mã thông báo làm mới. Đăng nhập tiếp theo có thể tạo mã thông báo làm mới, làm cho mã cũ không hợp lệ
Cerlin
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.