我正在创建一个 ASP.NET Core MVC 应用,其中身份验证提供程序将为FireBase。
我的Web应用程序托管在Azure中,一旦用户登录,它就会向我的Firebase端点发送一个HTTPS请求,该请求看起来像https://myFirebaseApp.cloudfunctions.net/signup
,带有用户名和密码,并将创建以下用户; < / p>
https://firebase.google.com/docs/auth/web/start?authuser=0
firebase.auth().createUserWithEmailAndPassword(email, password).catch(function(error) {
// Handle Errors here.
var errorCode = error.code;
var errorMessage = error.message;
// ...
});
我的意图是在响应中获取一种session token
并将其保存在cookie中。每次用户导航到另一个页面时,我都需要验证该cookie /令牌以保持身份验证的持久性。
实现这一目标的方法是什么?还是有更好的方法来保持这种集成?
答案 0 :(得分:0)
我发现我可以为此使用自定义标记。我需要使用的是createCustomToken
和
signInWithCustomToken
种方法。
https://firebase.google.com/docs/auth/admin/create-custom-tokens
创建令牌:
createCustomToken(request, response) {
let uid = request.query.uid;
if (!uid) {
response.send("query.uid is required.");
return;
}
let additionalClaims = {
myExtraField: 1
};
this.admin
.auth()
.createCustomToken(uid, additionalClaims)
.then(function(customToken) {
// Send token back to client
response.send(customToken);
})
.catch(function(error) {
response.send(error);
});
}
登录:
signInWithCustomToken(request, response) {
const id_token = request.query.id_token;
if (!id_token) {
response.send("query.id_token is required.");
return;
}
// Sign in with signInWithCustomToken.
this.authService
.signInWithCustomToken(id_token)
.then(result => {
response.send(result);
})
.catch(error => {
response.send(error);
});
}