diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index 9a37fc8990..98aaf3ac3c 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -9,6 +9,7 @@ "dependencies": { "@abp/ng.permission-management": "~7.2.1", "@abp/ng.theme.shared": "~7.2.1", + "@abp/ng.components": "~7.2.1", "tslib": "^2.0.0" }, "publishConfig": { diff --git a/templates/app/react-native/src/api/AccountAPI.js b/templates/app/react-native/src/api/AccountAPI.js index af303b626a..76a4b7f914 100644 --- a/templates/app/react-native/src/api/AccountAPI.js +++ b/templates/app/react-native/src/api/AccountAPI.js @@ -3,15 +3,34 @@ import { getEnvVars } from '../../Environment'; const { oAuthConfig } = getEnvVars(); +getLoginData = (username, password) => { + + const formData = { + grant_type: 'password', + scope: oAuthConfig.scope, + username: username, + password: password, + client_id: oAuthConfig.clientId + }; + + if (oAuthConfig.clientSecret) + formData['client_secret'] = oAuthConfig.clientSecret; + + return Object.entries(formData) + .map(([key, value]) => `${key}=${encodeURIComponent(value)}`) + .join('&'); +} + export const login = ({ username, password }) => api({ method: 'POST', url: '/connect/token', headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, - data: `grant_type=password&scope=${oAuthConfig.scope}&username=${username}&password=${password}&client_id=${oAuthConfig.clientId}&client_secret=${oAuthConfig.clientSecret}`, - baseURL: oAuthConfig.issuer, + data: getLoginData(username, password), + baseURL: oAuthConfig.issuer }).then(({ data }) => data); + export const Logout = () => api({ method: 'GET',