public override async Task <AuthorizationResponse> LoginWithToken(AuthorizedTokenRequest request, ServerCallContext context) { if (string.IsNullOrEmpty(request.Token)) { return new AuthorizationResponse() { Status = ResponseFactory.createResponse(ResponseType.INVALID_CREDENTIALS) } } ; if (JwtManager.ValidateToken(request.Token, out var uuid)) { // Validate user exists. RedisUserModel user = await RedisUserModel.GetUserFromGuid(uuid); if (user != null) { context.UserState["user"] = user; return(new AuthorizationResponse() { Status = ResponseFactory.createResponse(ResponseType.SUCCESS), Token = request.Token, User = user.asUser(), }); } } return(new AuthorizationResponse() { Status = ResponseFactory.createResponse(ResponseType.INVALID_CREDENTIALS) }); }
public override async Task <AccountRegistrationResponse> RegisterAccount(AccountRegistrationRequest request, ServerCallContext context) { RedisUserModel user = await RedisUserModel.GetUserFromUsername(request.Username); if (user != null) { return new AccountRegistrationResponse() { Status = ResponseFactory.createResponse(ResponseType.DUPLICATE) } } ; // Create a new user model RedisUserModel model = new RedisUserModel(request); await model.SaveToDatabase(); string token = JwtManager.GenerateToken(model.UserModel.Id); context.ResponseTrailers.Add("Authorization", token); return(new AccountRegistrationResponse { Token = token, User = model.asUser(), Status = ResponseFactory.createResponse(ResponseType.SUCCESS), }); } }
public override async Task <AuthorizationResponse> Login(AuthorizationRequest request, ServerCallContext context) { // Try to get a user RedisUserModel user = await RedisUserModel.GetUserFromUsername(request.Username); if (user == null || !JwtManager.VerifyPasswordHash(request.Password, user.UserModel.PasswordHash)) { return new AuthorizationResponse() { Status = ResponseFactory.createResponse(ResponseType.INVALID_CREDENTIALS) } } ; string token = JwtManager.GenerateToken(user.UserModel.Id); context.ResponseTrailers.Add("Authorization", token); return(new AuthorizationResponse { Token = token, User = user.asUser(), Status = ResponseFactory.createResponse(ResponseType.SUCCESS), }); }