2012-01-21 33 views
81

Tôi đã sử dụng làm mới thẻ nhiều lần chỉ trong vòng một thời gian ngắn cho mục đích thử nghiệm, nhưng tôi tự hỏi rằng, đừng Google làm mới thẻ hết hạn? Hoặc tôi có thể gọi cùng một mã thông báo làm mới để nhận lại một mã thông báo truy cập khác trong một thời gian dài (Một tuần hoặc thậm chí hàng tháng)?Mã thông báo làm mới của Google có hết hạn không?

+0

bạn đang sử dụng ruby ​​hay bạn có mẫu mã cho điều đó không? – Thufir

Trả lời

110

Máy chủ Google Auth ban hành thẻ Refresh bao giờ hết hạn - đó là toàn bộ điểm của thẻ làm mới. Các refresh thẻ sẽ hết hạn (hay tôi nên nói trở thành bất hợp pháp) khi người dùng hủy bỏ quyền truy cập vào ứng dụng của bạn.

Tham khảo này doc nó nêu rõ chức năng của thẻ làm mới.

Thay vì phát hành mã thông báo dài hạn (thường tốt trong một năm hoặc không giới hạn), máy chủ có thể phát hành mã truy cập tồn tại trong thời gian ngắn và mã thông báo làm mới lâu. Vì vậy, trong ngắn hạn, bạn có thể sử dụng thẻ làm mới một lần nữa và một lần nữa cho đến khi người dùng được phép truy cập thu hồi quyền truy cập vào ứng dụng của bạn.

+0

Cảm ơn! Phải xem tài liệu. –

+5

Phần "tốt cho một năm" làm cho nó không hoàn toàn rõ ràng như bạn đề nghị; nhưng vì nó dường như không gây ra vấn đề trong thực tế, tôi giả định mã thông báo làm mới là thường xanh. – mahemoff

+37

Hết hạn mã thông báo Bạn nên viết mã của mình để dự đoán khả năng mã thông báo được cấp có thể không hoạt động nữa. Mã thông báo có thể ngừng hoạt động vì một trong các lý do sau: Người dùng đã thu hồi quyền truy cập. Mã thông báo không được sử dụng trong sáu tháng. Tài khoản người dùng đã vượt quá một số yêu cầu mã thông báo nhất định. Hiện tại, giới hạn 25 mã thông báo cho mỗi tài khoản người dùng Google. Nếu tài khoản người dùng có 25 mã thông báo hợp lệ, yêu cầu xác thực tiếp theo sẽ thành công, nhưng lặng lẽ làm mất hiệu lực mã thông báo nổi bật cũ nhất mà không có bất kỳ cảnh báo nào hiển thị của người dùng. (từ https://developers.google.com/accounts/docs/OAuth2) Mã thông báo làm mới 'sống lâu' – bazik

14

Tôi không nghĩ đó là hoàn toàn đúng:

Lưu ý rằng có những giới hạn về số lượng thẻ làm mới sẽ được phát hành; một giới hạn cho mỗi kết hợp khách hàng/người dùng và một giới hạn khác cho mỗi người dùng trên tất cả các ứng dụng khách. Bạn nên lưu mã thông báo làm mới trong bộ nhớ dài hạn và tiếp tục sử dụng chúng miễn là chúng vẫn hợp lệ. Nếu ứng dụng của bạn yêu cầu quá nhiều mã thông báo làm mới, nó có thể chạy vào các giới hạn này, trong trường hợp đó mã thông báo làm mới cũ sẽ ngừng hoạt động.

từ trang này: https://developers.google.com/youtube/v3/guides/authentication#installed-apps

Đó là từ các tài liệu youTube (mà tôi tìm thấy là tốt hơn nhiều so với tài liệu api khác) nhưng tôi nghĩ rằng nó là giống nhau trên tất cả các ứng dụng google.

2

Khái niệm chính của thẻ làm mới, là nó là lâu dài và không bao giờ hết hạn.

Mã thông báo truy cập có thời gian hết hạn và hết hạn, khi hết hạn, chúng tôi có thể sử dụng mã thông báo làm mới, mã này sẽ được sử dụng lại cho đến khi người dùng thu hồi từ tài khoản của anh ấy.

-1

Tôi đã làm một số nghiên cứu sâu hơn và có vẻ như rằng thẻ truy cập Google được sử dụng để lấy một thẻ làm mới, trong 'ẩn' yêu cầu đầu tiên. Từ điểm này trở đi, mã thông báo làm mới được sử dụng để phát hành mã thông báo truy cập mới. Ý tưởng là mã thông báo truy cập là mã thông báo ngắn hạn, nhưng nó có thể được gia hạn bằng mã thông báo làm mới dài hạn.Điều này loại bỏ sự cần thiết phải yêu cầu 'mã' URL biến, đòi hỏi một cách tiếp cận hai thiết bị đầu cuối và phải được bắt đầu, sử dụng một giới thiệu dựa theo yêu cầu:

http://www.jensbits.com/2012/01/09/google-api-offline-access-using-oauth-2-0-refresh-token/

Một số, dịch vụ REST API như Dropbox, cấp mã thông báo truy cập tồn tại mãi mãi, nhưng Google phát hành mã thông báo truy cập ngắn hạn. PayPal sử dụng một thỏa hiệp, theo đó nó cho phép các mã thông báo truy cập được truy xuất mà không cần thực thi liên kết giới thiệu URI. Điều này có nghĩa là thẻ truy cập có thể được truy xuất mà không cần phải nhấp vào liên kết để bắt đầu quá trình. Phương pháp của Google có nghĩa là các thói quen API chỉ nên được gọi dựa trên nhu cầu sử dụng cơ sở. Về cơ bản, các cuộc gọi được bắt đầu thông qua các thủ tục dựa trên liên kết giới thiệu. Điều này được kiểm soát bằng cách cấp mã thông báo truy cập ngắn, hoặc mã thông báo truy cập phải được làm mới trong một chuỗi. Điều này đòi hỏi các nhà phát triển phải suy nghĩ cẩn thận hơn về cách một hệ thống nên chạy.

31

Đây là một chuỗi rất khó hiểu. Câu trả lời đầu tiên có vẻ đúng, nhưng không thực sự trích dẫn bất cứ điều gì có thẩm quyền từ google.

Câu trả lời dứt khoát nhất tôi tìm thấy thực sự nằm trong sân chơi của nhà phát triển nơi bạn nhận được mã thông báo. Bước 2 có ghi chú ở dưới cùng có nội dung:

"Lưu ý: OAuth Playground không lưu mã thông báo làm mới nhưng người dùng nên truy cập trang Truy cập được ủy quyền của Tài khoản Google nếu họ muốn để thu hồi chúng theo cách thủ công. "

https://developers.google.com/oauthplayground/

+2

câu trả lời hay nhất ở đây - lý do tại sao không ai đã upvoted là không thể tin được - cảm ơn rất nhiều - xử lý thẻ làm mới như thể họ không bao giờ hết hạn - tuy nhiên khi đăng nhập kiểm tra một cái mới trong trường hợp người dùng thu hồi mã thông báo làm mới, trong trường hợp này Google sẽ cung cấp một làm mới mới mã thông báo khi đăng nhập để chỉ cập nhật mã thông báo làm mới – danday74

3

Các quy tắc đã thay đổi về vấn đề này đôi khi vào năm 2017, vì vậy câu trả lời tốt nhất mà tôi nghĩ là nó phụ thuộc vào sản phẩm. Ví dụ: trên API Gmail, mã thông báo làm mới Oauth 2.0 sẽ hết hạn sau khi thay đổi mật khẩu. Xem này https://support.google.com/a/answer/6328616?hl=en

Chúng tôi đã sử dụng để thiết lập quyền truy cập API trước và tạo mã thông báo làm mới khi chúng tôi thiết lập người dùng gmail MỚI, và sau đó chúng tôi có thể lưu trữ thư của họ (chúng tôi bắt buộc phải làm như vậy), nhưng ngay sau khi họ thay đổi mật khẩu của họ, mã thông báo làm mới bị thu hồi.

Có lẽ đối với youtube, bản đồ, mã thông báo làm mới vẫn thực sự tồn tại lâu, nhưng đối với api gmail, hãy đếm trên một mã thông báo ngắn.

+0

Có vẻ như nó đã chính thức được phát hành vào ngày 5 tháng 10 năm 2016. https://developers.googleblog.com/2016/09/increased-account-security-via-oauth-2-0-token -revocation.html – user3919648

Các vấn đề liên quan