繁体   English   中英

ASP.NET Firebase验证令牌ID

[英]ASP.NET Firebase Verify Token ID

我们的用户正在使用带有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";
        }

    }

}

这就是我所做的。

如果您之前已将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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM