1

ServiceStack の認証プロバイダーとして Auth0 を使用したいと考えています。Auth0 に文書化された優れたサンプル アプリケーションがあり、ServiceStack と連携して ServiceStack.Host.MVC を使用する場合に適用され、うまく機能します: https://auth0.com/docs/quickstart/webapp/servicestack/01-login

ただし、MVC と AccountController を使用してユーザーをリダイレクトしていないシナリオで、承認 URL を作成し、ユーザーをその URL にリダイレクトする方法がわかりません。以下の MVC サンプル コードに従ってロジックを複製したい場合、ServiceStack Auth Plugin を使用してリダイレクト URL を作成するにはどうすればよいですか。

public class AccountController : Controller
{
  public ActionResult Login()
  {
    string clientId = WebConfigurationManager.AppSettings["oauth.auth0.AppId"];
    string domain = WebConfigurationManager.AppSettings["oauth.auth0.OAuthServerUrl"].Substring(8);

    var redirectUri = new UriBuilder(this.Request.Url.Scheme, this.Request.Url.Host, this.Request.Url.IsDefaultPort ? -1 : this.Request.Url.Port, "api/auth/auth0");

    var client = new AuthenticationApiClient(new Uri($"https://{domain}"));
    var authorizeUrlBuilder = client.BuildAuthorizationUrl()
        .WithClient(clientId)
        .WithRedirectUrl(redirectUri.ToString())
        .WithResponseType(AuthorizationResponseType.Code)
        .WithScope("openid profile")
        .WithAudience($"https://{domain}/userinfo");


    return Redirect(authorizeUrlBuilder.Build().ToString());
 }
}
4

1 に答える 1