Chúng tôi đang phát triển một ứng dụng javascript cơ sở khách hàng đầy đủ SPA và cần phải xác thực người dùng của chúng tôi để có quyền truy cập vào nội bộ.Đăng nhập vào Ứng dụng một trang với xác thực của Google và Google Oauth 2.0
Khi tôi tìm thấy từ tìm kiếm, chúng tôi có thể thuê ngoài cơ chế xác thực của mình và sử dụng tài khoản Google cho điều đó. Tôi đã học được từ trang web này https://developers.google.com/accounts/docs/OAuth2Login - Cách xử lý API Google và cơ chế xác thực.
Trong lời ngắn, chúng ta cần:
- gửi yêu cầu đến google url với params hỏi người sử dụng để cho phép SPA sử dụng dữ liệu cá nhân của họ
- trong trường hợp thành công, chúng tôi nhận mã từ Google
- chúng tôi có thể sử dụng mã thông báo này để có quyền truy cập vào API mà chúng tôi đã được hỏi và làm việc với nó.
Điều này được mô tả tốt và tôi hiểu nó và có một số mã JS để làm cho nó xảy ra.
Điều tôi không hiểu.
Tôi có một ứng dụng có dữ liệu riêng tư. Tôi muốn sử dụng e-mail của người dùng làm thông tin đăng nhập hoặc id người dùng (không quan trọng cách gọi nó) để truy cập nội bộ của ứng dụng, chẳng hạn như tác vụ do người dùng tạo, tiểu sử của người dùng, v.v. Tôi cần cơ sở dữ liệu truy vấn bằng e-mail của người dùng.
Tôi giả sử tình huống tiếp theo:
- người dùng nhấp
Login with Google
nút - chúng tôi có được một thẻ - điều này có nghĩa là người dùng đã được xác thực thành công
- chúng tôi kiên trì dùng và e-mail của mình để làm việc với SPA
- khi người dùng nhấp vào
Logout
chúng tôi xóa tất cả dữ liệu truy cập
Tôi nên lưu dữ liệu này ở đâu?
Trong trường hợp Forms Authentication
tôi hiểu rằng chúng tôi vượt qua đăng nhập/mật khẩu để máy chủ và nếu chúng phù hợp với cơ sở dữ liệu chúng tôi tạo Forms Ticket
và lưu trữ nó trong cookie.
Có trường hợp tương tự nào với auth của Google không? Nếu tôi lưu trữ email của người dùng trong cookie, tôi nghĩ rằng đó không phải là rất tốt vì lý do bảo mật. Nếu tôi sẽ lưu một mã thông báo - Tôi không chắc tại sao tôi cần nó và cách sử dụng nó trong SPA của tôi, tôi không sử dụng bất kỳ API Google nào sau khi xác thực.
Bạn có trường hợp ví dụ nào về cách chúng tôi tạo quy trình của mình trong các trường hợp tương tự không?
Cảm ơn bạn.
FYI ID người dùng và email người dùng khác nhau theo một cách quan trọng; người dùng có thể thay đổi địa chỉ email của họ và ID sẽ vẫn giữ nguyên cho người dùng đó. –
Trong trường hợp cụ thể này, chúng tôi sẽ không thay đổi email bên trong mạng công ty. Nói chung tôi đã cố gắng giải thích, rằng tôi sẽ sử dụng đầu tiên hoặc thứ hai, nhưng nó không quan trọng về những gì tôi nên làm gì tiếp theo. Nếu ID - ok, hãy lưu ID của người dùng trong cơ sở dữ liệu và truy vấn nó bằng id, nếu e-mail - cũng ok. BTW làm thế nào tôi có thể thay đổi e-mail trên google? Thậm chí có thể không? –
http://support.google.com/accounts/bin/answer.py?hl=vi&answer=19870 –