Tôi đã đọc tài liệu, ví dụ và hướng dẫn về cách sử dụng API Google, tôi có một ứng dụng nhỏ đang chạy cho thấy hoạt động và thông tin mới nhất của bạn, nhưng tôi sử dụng các phiên để lưu trữ mã thông báo.Lưu trữ API OAuth Google+ và truy xuất mã thông báo sau khi đăng nhập và ủy quyền lần đầu tiên
Câu hỏi của tôi là, làm cách nào để lưu trữ và truy xuất mã thông báo từ cơ sở dữ liệu để khi người dùng đã đăng ký nhấp vào "đăng nhập", nó có thể sử dụng API ngay lập tức mà không được phép lặp lại? Lưu ý rằng tôi đã sử dụng ví dụ làm điểm bắt đầu cho ứng dụng nhỏ của mình.
Dưới đây là một đoạn mã:
$client = new apiClient();
$client->setApplicationName(APP_NAME);
$client->setClientId(CLIENT_ID);
$client->setClientSecret(CLIENT_SECRET);
$client->setRedirectUri(REDIRECT_URL);
$client->setDeveloperKey(DEV_KEY);
$plus = new apiPlusService($client);
$google_userinfo = new apiOauth2Service($client);
$message = "";
// In a real application this would be stored in a database, and not in the session!
if (isset($_SESSION['token']))
$client->setAccessToken($_SESSION['token']);
$_SESSION['token'] = $client->getAccessToken();
if (isset($_GET['code'])) {
$client->authenticate();
// In a real application this would be stored in a database, and not in the session!
$_SESSION['token'] = $client->getAccessToken();
header('Location: http://' . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']);
}
...
//Somewhere here, I added a function that ties $_SESSION['token'] to the user's info.
...
<form action="" method="post" id="form1" name="form1">
<fieldset>
<div id="main-url-section" style="width: 50%;margin: 0px auto;text-align: center;">
<?php
$authUrl = $client->createAuthUrl();
print "<p><a class='login' href='$authUrl'>Log me in!</a></p>";
?>
</div>
</fieldset>
</form>
Cảm ơn bạn rất nhiều vì sự giúp đỡ!
Kính trọng,
John
Cảm ơn câu trả lời này! Điều này là hữu ích và tôi có thể sử dụng nó như là một sửa chữa tạm thời. :) Tôi đã kiểm tra nó ra. Nhưng bạn có biết hoặc có một liên kết đến bất kỳ bài viết về cách lưu trữ các thẻ tôi nhận được trong $ client-> getAccessToken()? và sử dụng chúng khi người dùng đăng nhập? – user1239714
@ user1239714: Tôi không biết một địa điểm cụ thể nào để liên kết bạn để được tư vấn tại đây. Nó phụ thuộc hoàn toàn vào cách bạn duy trì phần còn lại của dữ liệu trong ứng dụng của bạn. Ví dụ, nếu bạn đang viết một ứng dụng LAMP điển hình, nó có thể có ý nghĩa để lưu trữ mã thông báo làm mới trong MySql để thu hồi sau. – mimming
@JennyMurphy "Bạn có thể thấy điều này trong mã nguồn". Liên kết bị hỏng. Bạn có thể vui lòng cung cấp một mẫu khác – knightrider