fix: URL encode params on Platform API call (#3929)

Add URL encoding for the params in platform API calls.

Fixes: product#307
Fixes: #2186
This commit is contained in:
Pranav Raj S 2022-02-08 04:47:36 +05:30 committed by GitHub
parent 375d943a48
commit 2a07eae69f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 4 deletions

View file

@ -13,7 +13,8 @@ class Platform::Api::V1::UsersController < PlatformController
end
def login
render json: { url: "#{ENV['FRONTEND_URL']}/app/login?email=#{@resource.email}&sso_auth_token=#{@resource.generate_sso_auth_token}" }
encoded_email = ERB::Util.url_encode(@resource.email)
render json: { url: "#{ENV['FRONTEND_URL']}/app/login?email=#{encoded_email}&sso_auth_token=#{@resource.generate_sso_auth_token}" }
end
def show; end

View file

@ -133,7 +133,9 @@ export default {
login() {
this.loginApi.showLoading = true;
const credentials = {
email: this.email ? this.email : this.credentials.email,
email: this.email
? decodeURIComponent(this.email)
: this.credentials.email,
password: this.credentials.password,
sso_auth_token: this.ssoAuthToken,
};

View file

@ -1,7 +1,7 @@
require 'rails_helper'
RSpec.describe 'Platform Users API', type: :request do
let!(:user) { create(:user, custom_attributes: { test: 'test' }) }
let!(:user) { create(:user, email: 'dev+testing@chatwoot.com', custom_attributes: { test: 'test' }) }
describe 'GET /platform/api/v1/users/{user_id}' do
context 'when it is an unauthenticated platform app' do
@ -71,7 +71,7 @@ RSpec.describe 'Platform Users API', type: :request do
expect(response).to have_http_status(:success)
data = JSON.parse(response.body)
expect(data['url']).to include('sso_auth_token')
expect(data['url']).to include('email=dev%2Btesting%40chatwoot.com&sso_auth_token=')
end
end
end