我想支持通过firebase将Twitter帐户链接到网站用户身份验证。这意味着根据以下链接,我需要获取身份验证提供程序的凭据。
文档显示谷歌,脸书和电子邮件。但是我想使用twitter ...所以在这里查看API:
https://firebase.google.com/docs/reference/js/firebase.auth.TwitterAuthProvider#TwitterAuthProvider
我需要打电话:
var credential = firebase.auth.TwitterAuthProvider.credential(token,secret);
哪个是问题...我真的需要将twitter auth秘密放在纯文本javascript中吗?显然,这似乎是一种安全风险???
答案 0 :(得分:-1)
Authenticate Using Twitter on Web App
有两种方法1。 Handle the sign-in flow with the Firebase SDK
2。 Handle the sign-in flow manually
您需要尝试 1 来获取身份验证提供程序的凭据。
使用 Twitter 帐户通过Firebase对用户进行身份验证的最简单方法是使用Firebase SDK处理登录流程。为此,请按照下列步骤操作:
第1步: 创建Twitter提供程序对象的实例:
var provider = new firebase.auth.TwitterAuthProvider();
第2步: 使用Twitter提供程序对象使用Firebase进行身份验证。您可以通过打开弹出窗口或重定向到登录页面来提示您的用户使用他们的Twitter帐户登录。移动设备首选重定向方法。
要使用弹出窗口登录,请拨打 signInWithPopup :
firebase.auth().signInWithPopup(provider).then(function(result) {
// This gives you a the Twitter OAuth 1.0 Access Token and Secret.
// You can use these server side with your app's credentials to access the Twitter API.
var token = result.credential.accessToken;
var secret = result.credential.secret;
// The signed-in user info.
var user = result.user;
// ...
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
// ...
});
另请注意,您可以检索Twitter提供商的OAuth令牌,该令牌可以使用到使用Twitter API获取其他数据。
要通过重定向到登录页面进行登录,请拨打 signInWithRedirect :
firebase.auth().signInWithRedirect(provider);
然后,您还可以在页面加载时调用 getRedirectResult 来检索Twitter提供商的OAuth令牌:
firebase.auth().getRedirectResult().then(function(result) {
if (result.credential) {
// This gives you a the Twitter OAuth 1.0 Access Token and Secret.
// You can use these server side with your app's credentials to access the Twitter API.
var token = result.credential.accessToken;
var secret = result.credential.secret;
// ...
}
// The signed-in user info.
var user = result.user;
}).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// The email of the user's account used.
var email = error.email;
// The firebase.auth.AuthCredential type that was used.
var credential = error.credential;
// ...
});