Skip to content

Commit 7ed7052

Browse files
committed
Add token refresh feature
1 parent 39a7ee1 commit 7ed7052

File tree

4 files changed

+23
-5
lines changed

4 files changed

+23
-5
lines changed

ID/GameSwiftSdkId.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,11 @@ public static GameSwiftSdkId Instance
4141
/// Stored API Access Token.
4242
/// </summary>
4343
public string AccessToken { get; private set; }
44+
45+
/// <summary>
46+
/// Stored API Refresh Token.
47+
/// </summary>
48+
public string RefreshToken { get; private set; }
4449

4550
[RuntimeInitializeOnLoadMethod]
4651
private static void Instantiate ()

ID/GameSwiftSdkIdPost.cs

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,7 @@ void HandleAuthorizationSuccess(AuthorizeResponse response)
9595

9696
void HandleRequestTokenSuccess(TokenResponse response)
9797
{
98+
Instance.RefreshToken = response.refreshToken;
9899
GetOauthUserInformation(response.accessToken, HandleOAuthMeSuccess, handleFailure);
99100

100101
void HandleOAuthMeSuccess(OauthUserInfoResponse oauthMeResponse)
@@ -130,7 +131,13 @@ public static void RetrieveOauthToken(string authorizationCode, string clientId,
130131
var request = new RequestData(apiUri, queryString);
131132
request.SetupHeaders(CustomHeader.WwwContentType, "");
132133

133-
GameSwiftSdkCore.SendPostRequest(request, handleSuccess, handleFailure);
134+
GameSwiftSdkCore.SendPostRequest<TokenResponse>(request, HandleRefreshTokenSuccess, handleFailure);
135+
136+
void HandleRefreshTokenSuccess(TokenResponse tokenResponse)
137+
{
138+
Instance.RefreshToken = tokenResponse.refreshToken;
139+
handleSuccess.Invoke(tokenResponse);
140+
}
134141
}
135142

136143
/// <summary>
@@ -143,7 +150,7 @@ public static void RetrieveOauthToken(string authorizationCode, string clientId,
143150
/// If the user is correctly logged in and authorized with /oauth/token it should be already stored in GameSwiftSdkId.Instance.RefreshToken</param>
144151
/// <param name="handleSuccess">Success handler</param>
145152
/// <param name="handleFailure">Failure handler</param>
146-
private static void RefreshOauthToken(string clientId, string redirectUri, string refreshToken,
153+
public static void RefreshOauthToken(string clientId, string redirectUri, string refreshToken,
147154
Action<TokenResponse> handleSuccess, Action<BaseSdkFailResponse> handleFailure)
148155
{
149156
Dictionary<string, string> body = new Dictionary<string, string>()
@@ -159,7 +166,13 @@ private static void RefreshOauthToken(string clientId, string redirectUri, strin
159166
var request = new RequestData(apiUri, queryString);
160167
request.SetupHeaders(CustomHeader.WwwContentType, "");
161168

162-
GameSwiftSdkCore.SendPostRequest(request, handleSuccess, handleFailure);
169+
GameSwiftSdkCore.SendPostRequest<TokenResponse>(request, HandleRefreshTokenSuccess, handleFailure);
170+
171+
void HandleRefreshTokenSuccess(TokenResponse tokenResponse)
172+
{
173+
Instance.RefreshToken = tokenResponse.refreshToken;
174+
handleSuccess.Invoke(tokenResponse);
175+
}
163176
}
164177

165178
/// <summary>

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "com.gameswift.sdk",
3-
"version": "2.0.1",
3+
"version": "2.0.2",
44
"displayName": "GameSwiftSDK",
55
"description": "Unity package making it easy to connect with GameSwift ecosystem via GameSwift ID.",
66
"documentationUrl": "https://docs.gameswift.io/gameswift-products/sdk",

package.json.meta

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)