ASP.NET Core 3.1 - 从Facebook认证获取用户个人资料图片
创始人
2024-09-14 20:30:19
0

要从Facebook认证获取用户个人资料图片,可以使用ASP.NET Core 3.1的Microsoft.AspNetCore.Authentication.Facebook扩展库。以下是一个示例解决方案:

  1. 在ASP.NET Core 3.1项目中,安装Microsoft.AspNetCore.Authentication.Facebook NuGet包。

  2. Startup.cs文件中的ConfigureServices方法中添加Facebook身份验证服务:

using Microsoft.AspNetCore.Authentication.Facebook;

public void ConfigureServices(IServiceCollection services)
{
    // ...

    services.AddAuthentication()
        .AddFacebook(options =>
        {
            options.AppId = "your_app_id";
            options.AppSecret = "your_app_secret";
            options.SaveTokens = true; // 保存访问令牌以便后续使用
            options.Scope.Add("email");
            options.Scope.Add("public_profile");
        });

    // ...
}

请确保将your_app_idyour_app_secret替换为您在Facebook开发者门户中创建的应用程序的实际值。

  1. Startup.cs文件的Configure方法中添加身份验证中间件:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    // ...

    app.UseRouting();

    app.UseAuthentication(); // 添加身份验证中间件
    app.UseAuthorization();

    // ...
}
  1. 在控制器中使用Facebook身份验证:
using Microsoft.AspNetCore.Authentication;

public class HomeController : Controller
{
    public IActionResult Index()
    {
        return View();
    }

    public IActionResult Login()
    {
        var redirectUrl = Url.Action("Callback", "Home", null, Request.Scheme);
        return Challenge(new AuthenticationProperties { RedirectUri = redirectUrl }, "Facebook");
    }

    public async Task Callback()
    {
        var authenticateResult = await HttpContext.AuthenticateAsync();
        if (!authenticateResult.Succeeded)
        {
            // 身份验证失败处理
            return RedirectToAction("Login");
        }

        // 从用户声明中获取用户个人资料图片URL
        var pictureUrl = authenticateResult.Principal.FindFirstValue("urn:facebook:picture");

        // 处理用户个人资料图片URL

        return View();
    }
}
  1. 在视图中显示用户个人资料图片:
@model string

User Profile Picture

@if (!string.IsNullOrEmpty(Model)) { Profile Picture }
  1. Callback.cshtml视图中添加以下内容:
@{ Layout = null; }

@model string


此代码将在Facebook认证成功后将个人资料图片URL发送回父窗口,并关闭弹出窗口。

现在,当用户点击登录链接时,他们将被重定向到Facebook登录页面,并且在成功登录并授权后,将被重定向回您的应用程序,并在Callback动作中获取用户个人资料图片URL。然后,您可以将此URL传递给视图以显示用户个人资料图片。

相关内容

热门资讯

wpk有外 挂!wpk俱乐部后... wpk有外 挂!wpk俱乐部后台管理系统(wpK)的确是有挂的-详细透视辅助教程;1、许多玩家不知道...
wepoke ai辅助!wep... wepoke ai辅助!wepoke辅助软件下载链接,wepoke辅助真的(详细辅助挂教程)是一款可...
wepoke插件!wepoke... wepoke插件!wepoke辅助透,wepoke是有软件,安装教程(有挂细节)需要回顾用户提供的搜...
微扑克辅助器ios!微扑克机制... 微扑克辅助器ios!微扑克机制技巧(透明挂)本来是有挂1、超多福利:超高返利,海量正版游戏,微扑克系...
wpk有辅助挂!wpk微扑克辅... wpk有辅助挂!wpk微扑克辅助存在(WpK)都是真的有挂-详细透明挂教程微扑克辅助器中分为三种模型...
微扑克辅助软件!德州wpk辅助... 微扑克辅助软件!德州wpk辅助,wepower有机器人(详细辅助教程);微扑克辅助软件黑科技是一款具...
wepok软件透明挂!wopo... wepok软件透明挂!wopoker轻量版外 挂(辅助挂)we辅助poker(总是真的有挂)1、很好...
微扑克全自动机器人!微扑克脚本... 您好,微扑克这款游戏可以开挂的,确实是有挂的,需要了解加微【757446909】很多玩家在这款游戏中...
WPK透视辅助!wpk脚本(W... WPK透视辅助!wpk脚本(WPK)本来真的有挂-详细透视教程;WPK辅助器中分为三种模型:WPK软...
德州ai机器人!wepower... 德州ai机器人!wepower线上游戏发牌机制规律,aapoker辅助工具(详细辅助教程)关于aap...