我们的用户正在使用带有Firebase的手机和短信进行注册。 当他们登录时,firebase为他们创建一个令牌ID,我们有一个网页。移动应用程序正在通过发布数据服务发送令牌ID。 我想在page_load上验证此令牌。
如何使它最简单?
我尝试过,但是找不到在哪里可以添加Firebase项目api等信息。
using FirebaseAdmin.Auth;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.Form.Count>0 && Request.Form["token_id"]!=null)
{
string result = AskTokenId(Request.Form["token_id"].ToString()).GetAwaiter().GetResult();
}
}
public static async Task<string> AskTokenId(string token_id)
{
try
{
FirebaseToken decodedToken = await FirebaseAuth.DefaultInstance.VerifyIdTokenAsync(token_id);
string uid = decodedToken.Uid;
return uid;
}
catch (Exception ex)
{
return "e";
}
}
}
答案 0 :(得分:0)
这就是我的方法。
FirebaseApp.DefaultInstance如果您之前已对其进行过初始化,则可以使用。
将通过Firebase服务帐户创建的json文件存储在项目中,然后使用该文件初始化FirebaseApp。
FirebaseApp firebaseApp = FirebaseApp.DefaultInstance;
if (firebaseApp == null)
{
string credentials = "path-to-your-json-credentials";
string project_id = "FirebaseProjectId";
var keypath = HostingEnvironment.MapPath(credentials);
firebaseApp = FirebaseApp.Create(new AppOptions() { ProjectId = project_id, Credential = GoogleCredential.FromFile(keypath) });
}
FirebaseAuth auth = FirebaseAuth.GetAuth(firebaseApp);
FirebaseToken decodedToken = await auth.VerifyIdTokenAsync(idToken);