mirror of
https://github.com/Sarsoo/Spotify.NET.git
synced 2024-12-24 15:06:26 +00:00
Added additional constructor to WebAPIFactory
This commit is contained in:
parent
409a444d53
commit
417869548a
@ -133,8 +133,7 @@ namespace SpotifyAPI.Example
|
||||
8000,
|
||||
"26d287105e31491889f3cd293d85bfea",
|
||||
Scope.UserReadPrivate | Scope.UserReadEmail | Scope.PlaylistReadPrivate | Scope.UserLibraryRead |
|
||||
Scope.UserReadPrivate | Scope.UserFollowRead | Scope.UserReadBirthdate | Scope.UserTopRead,
|
||||
TimeSpan.FromSeconds(20));
|
||||
Scope.UserReadPrivate | Scope.UserFollowRead | Scope.UserReadBirthdate | Scope.UserTopRead);
|
||||
|
||||
try
|
||||
{
|
||||
|
42
SpotifyAPI/Web/Auth/Factories/CredentialWebFactory.cs
Normal file
42
SpotifyAPI/Web/Auth/Factories/CredentialWebFactory.cs
Normal file
@ -0,0 +1,42 @@
|
||||
using System;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using SpotifyAPI.Web.Enums;
|
||||
using SpotifyAPI.Web.Models;
|
||||
|
||||
namespace SpotifyAPI.Web.Auth.Factories
|
||||
{
|
||||
public class CredentialWebFactory
|
||||
{
|
||||
private readonly string _secretId;
|
||||
private readonly string _clientId;
|
||||
private readonly Scope _scope;
|
||||
|
||||
public CredentialWebFactory(string secretId, string clientId, Scope scope)
|
||||
{
|
||||
_secretId = secretId;
|
||||
_clientId = clientId;
|
||||
_scope = scope;
|
||||
}
|
||||
|
||||
public async Task<SpotifyWebAPI> GetWebApi()
|
||||
{
|
||||
var authentication = new ClientCredentialsAuth()
|
||||
{
|
||||
ClientId = _clientId,
|
||||
Scope = _scope,
|
||||
ClientSecret = _secretId
|
||||
};
|
||||
|
||||
AutoResetEvent authenticationWaitFlag = new AutoResetEvent(false);
|
||||
SpotifyWebAPI spotifyWebApi = null;
|
||||
|
||||
Token token = await authentication.DoAuthAsync();
|
||||
|
||||
if(token.Error != null)
|
||||
throw new SpotifyWebApiException(token.Error);
|
||||
|
||||
return Task.FromResult(spotifyWebApi);
|
||||
}
|
||||
}
|
||||
}
|
@ -13,14 +13,22 @@ namespace SpotifyAPI.Web.Auth
|
||||
private readonly string _clientId;
|
||||
private readonly TimeSpan _timeout;
|
||||
private readonly Scope _scope;
|
||||
private readonly string _xss;
|
||||
|
||||
public WebAPIFactory(string redirectUrl, int listeningPort, string clientId, Scope scope, TimeSpan timeout)
|
||||
public WebAPIFactory(string redirectUrl, int listeningPort, string clientId, Scope scope)
|
||||
: this(redirectUrl, listeningPort, clientId, scope, TimeSpan.FromSeconds(20))
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public WebAPIFactory(string redirectUrl, int listeningPort, string clientId, Scope scope, TimeSpan timeout, string xss = "XSS")
|
||||
{
|
||||
_redirectUrl = redirectUrl;
|
||||
_listeningPort = listeningPort;
|
||||
_clientId = clientId;
|
||||
_scope = scope;
|
||||
_timeout = timeout;
|
||||
_xss = xss;
|
||||
}
|
||||
|
||||
public Task<SpotifyWebAPI> GetWebApi()
|
||||
@ -30,7 +38,7 @@ namespace SpotifyAPI.Web.Auth
|
||||
RedirectUri = $"{_redirectUrl}:{_listeningPort}",
|
||||
ClientId = _clientId,
|
||||
Scope = _scope,
|
||||
State = "XSS"
|
||||
State = _xss
|
||||
};
|
||||
|
||||
AutoResetEvent authenticationWaitFlag = new AutoResetEvent(false);
|
||||
@ -59,9 +67,9 @@ namespace SpotifyAPI.Web.Auth
|
||||
return Task.FromResult(spotifyWebApi);
|
||||
}
|
||||
|
||||
private static SpotifyWebAPI HandleSpotifyResponse(string state, Token token)
|
||||
private SpotifyWebAPI HandleSpotifyResponse(string state, Token token)
|
||||
{
|
||||
if (state != "XSS")
|
||||
if (state != _xss)
|
||||
throw new SpotifyWebApiException($"Wrong state '{state}' received.");
|
||||
|
||||
if (token.Error != null)
|
||||
|
Loading…
Reference in New Issue
Block a user