页面刷新后如何访问推特OAuth令牌?



按照 Twitter 身份验证上的 Firebase 文档,我们得到这样的内容:

<script src="https://www.gstatic.com/firebasejs/5.0.4/firebase-app.js">    </script>
<script src="https://www.gstatic.com/firebasejs/5.0.4/firebase-auth.js"></script>
<script>
// NOTE: pseudo code
// initialise the app
firebase.initializeApp({
apiKey: "API_KEY",
authDomain: "AUTH_DOMAIN",
databaseURL: "DATABASE_URL",
projectId: "PROJECT_ID",
storageBucket: "STORAGE_BUCKET",
messagingSenderId: "MESSAGING_SENDER_ID"
});
// create Twitter provider
provider = new firebase.auth.TwitterAuthProvider();
// auth with popup
firebase.auth().signInWithPopup(provider).then(function(result) {
// in theory we could now access the OAuth token so we can make further requests to the Twitter API.
var token = result.credential.accessToken;
var secret = result.credential.secret;
});

到目前为止一切都很好。我们可以访问令牌和机密,并向推特 API 发出任何请求。

同样在文档中,引用了我们可以在页面刷新后调用的firebase.auth().currentUser方法(例如(。 在此对象中,我们可以访问首次登录时先前获得的一些信息,但是我们无法访问OAuth令牌或机密。

还有关于身份验证状态持久性的进一步文档,其中提到了一些其他方法,例如我认为firebase.auth().setPersistence(firebase.auth.Auth.Persistence.LOCAL)这是我需要的。但是,我仍然无法访问令牌或机密。

我是否应该在用户首次登录时将其存储在 cookie 或本地存储条目中?这甚至安全吗?任何帮助将不胜感激,因为我不想强迫我的用户每次关闭网站并再次打开时都登录 twitter。

谢谢

Firebase Auth 不管理第三方 OAuth 令牌。它们仅在登录时返回 OAuth 令牌,并在登录后丢弃它们。它们不存储这些数据,因此除非在本地存储这些数据,否则登录后将无法获取这些数据。Firebase Auth 目前只专注于提供 AuthN 解决方案,而不是 AuthZ。

最新更新