gpt4 book ai didi

c# - 更改 Google 默认身份验证重定向 - C#(Google 库)

转载 作者:行者123 更新时间:2023-11-30 13:37:01 25 4
gpt4 key购买 nike

我试试这个代码:https://developers.google.com/api-client-library/dotnet/guide/aaa_oauth#web_applications

我的代码相同

但是!我需要更改此默认 url 重定向。现在是:redirect_uri=http:%2F%2Flocalhost:52674%2FAuthCallback%2FIndexAsync

如何更改此网址?伙计们请帮忙。

谢谢

最佳答案

我还发现一开始更改 Google 的 OAuth 2.0 重定向 uri 真的很棘手,但事实证明这很简单。您可以通过不同的方式执行此操作。如果您遵循 Google 的 OAuth 2.0 Web 应用程序 (ASP.NET MVC) 指南,最简单的选择是覆盖 AppFlowMetadata 类中的 AuthCallback 字符串。

https://developers.google.com/api-client-library/dotnet/guide/aaa_oauth

public override string AuthCallback
{
get { return @"/AuthCallback/Index"; }
}

您也可以实现您自己的“AuthorizationCodeMvcApp”版本,但这太过分了。不要过溪取水。 :)

https://github.com/google/google-api-dotnet-client/tree/master/Src/GoogleApis.Auth.Mvc4/OAuth2/Mvc

但是如果你想这样做,这里有一个例子:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System;
using System.Threading;
using System.Threading.Tasks;
using System.Web.Mvc;
using Google.Apis.Auth.OAuth2.Mvc;
using Google.Apis.Auth.OAuth2.Web;

namespace ProjectName.GoogleCalendar
{
/// <summary>
/// Thread-safe OAuth 2.0 authorization code flow for a MVC web application that persists end-user credentials.
/// </summary>
public class CustomAuthorizationCodeMvcApp : AuthorizationCodeWebApp
{

private readonly Controller controller;
private readonly FlowMetadata flowData;

/// <summary>Gets the controller which is the owner of this authorization code MVC app instance.</summary>
public Controller Controller { get { return controller; } }

/// <summary>Gets the <see cref="Google.Apis.Auth.OAuth2.Mvc.FlowMetadata"/> object.</summary>
public FlowMetadata FlowData { get { return flowData; } }

/// <summary>Constructs a new authorization code MVC app using the given controller and flow data.</summary>
public CustomAuthorizationCodeMvcApp(Controller controller, FlowMetadata flowData)
: base(
flowData.Flow,
new Uri(controller.Request.Url.GetLeftPart(UriPartial.Authority) + "/CustomController" + flowData.AuthCallback).ToString(),
controller.Request.Url.ToString())
{
this.controller = controller;
this.flowData = flowData;
}

/// <summary>
/// Asynchronously authorizes the installed application to access user's protected data. It gets the user
/// identifier by calling to <see cref="Google.Apis.Auth.OAuth2.Mvc.FlowMetadata.GetUserId"/> and then calls to
/// <see cref="Google.Apis.Auth.OAuth2.AuthorizationCodeWebApp.AuthorizeAsync"/>.
/// </summary>
/// <param name="taskCancellationToken">Cancellation token to cancel an operation</param>
/// <returns>
/// Auth result object which contains the user's credential or redirect URI for the authorization server
/// </returns>
public Task<AuthResult> AuthorizeAsync(CancellationToken taskCancellationToken)
{
return base.AuthorizeAsync(FlowData.GetUserId(Controller), taskCancellationToken);
}
}
}

关于c# - 更改 Google 默认身份验证重定向 - C#(Google 库),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27090804/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com