35 lines
1.3 KiB
C#
35 lines
1.3 KiB
C#
using System;
|
|
using System.Threading.Tasks;
|
|
using DysonNetwork.Common.Models;
|
|
using DysonNetwork.Pass.Features.Auth.Models;
|
|
|
|
namespace DysonNetwork.Pass.Features.Auth.Services;
|
|
|
|
public interface IAccountConnectionService
|
|
{
|
|
/// <summary>
|
|
/// Finds an existing account connection or creates a new one
|
|
/// </summary>
|
|
Task<Common.Models.AccountConnection> FindOrCreateConnection(Common.Models.OidcUserInfo userInfo, string provider);
|
|
|
|
/// <summary>
|
|
/// Updates an existing connection with new token information
|
|
/// </summary>
|
|
Task UpdateConnection(Common.Models.AccountConnection connection, Common.Models.OidcUserInfo userInfo);
|
|
|
|
/// <summary>
|
|
/// Finds an account connection by provider and user ID
|
|
/// </summary>
|
|
Task<Common.Models.AccountConnection?> FindConnection(string provider, string userId);
|
|
|
|
/// <summary>
|
|
/// Creates a new session for the specified account
|
|
/// </summary>
|
|
Task<Models.AuthSession> CreateSessionAsync(Common.Models.Account account, string? deviceId = null);
|
|
|
|
/// <summary>
|
|
/// Adds a new OIDC connection to an account
|
|
/// </summary>
|
|
Task<Common.Models.AccountConnection> AddConnectionAsync(Common.Models.Account account, Common.Models.OidcUserInfo userInfo, string provider);
|
|
}
|