diff options
| author | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-03-13 15:07:51 +0200 |
|---|---|---|
| committer | Syndamia <kamen.d.mladenov@protonmail.com> | 2021-03-13 15:07:51 +0200 |
| commit | 75d57f305f2ed1ecf8b82bd62d4bb8f17c06303b (patch) | |
| tree | b721fe307d22a7a89f8ee13b3e557df4a2e2bbab /src/Common/DevHive.Common/Jwt/Interfaces | |
| parent | 503a23c04355624b133161c9356b139f2e4500f6 (diff) | |
| parent | 4add0831649f6e534d3883aa0e0e7f380d8042c7 (diff) | |
| download | DevHive-75d57f305f2ed1ecf8b82bd62d4bb8f17c06303b.tar DevHive-75d57f305f2ed1ecf8b82bd62d4bb8f17c06303b.tar.gz DevHive-75d57f305f2ed1ecf8b82bd62d4bb8f17c06303b.zip | |
Merge branch 'dev' of github.com:Team-Kaleidoscope/DevHive into unit_test_refactoring
Diffstat (limited to 'src/Common/DevHive.Common/Jwt/Interfaces')
| -rw-r--r-- | src/Common/DevHive.Common/Jwt/Interfaces/IJwtService.cs | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/Common/DevHive.Common/Jwt/Interfaces/IJwtService.cs b/src/Common/DevHive.Common/Jwt/Interfaces/IJwtService.cs new file mode 100644 index 0000000..352a7d5 --- /dev/null +++ b/src/Common/DevHive.Common/Jwt/Interfaces/IJwtService.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; + +namespace DevHive.Common.Jwt.Interfaces +{ + public interface IJwtService + { + /// <summary> + /// The generation of a JWT, when a new user registers or log ins + /// Tokens have an expiration time of 7 days. + /// </summary> + /// <param name="userId">User's Guid</param> + /// <param name="username">Users's username</param> + /// <param name="roleNames">List of user's roles</param> + /// <returns>Return a new JWT, containing the user id, username and roles.</returns> + string GenerateJwtToken(Guid userId, string username, List<string> roleNames); + + /// <summary> + /// Checks whether the given user, gotten by the "id" property, + /// is the same user as the one in the token (unless the user in the token has the admin role) + /// and the roles in the token are the same as those in the user, gotten by the id in the token + /// </summary> + /// <param name="userId">Guid of the user being validated</param> + /// <param name="rawToken">The raw token coming from the request</param> + /// <returns>Bool result of is the user authenticated to do an action</returns> + bool ValidateToken(Guid userId, string rawToken); + } +} |
