=== appsettings.json === { "AllowedHosts": "*", "ConnectionStrings": { "KimuserDbContextConnection": "Server=192.168.1.32;Database=LadaUser;User Id=ladadbm;Password=FPVCmmBFihwhYJSXm2dbs929x;MultipleActiveResultSets=true" }, "Logging": { "LogLevel": { "Default": "Information", "Microsoft": "Warning", "Microsoft.Hosting.Lifetime": "Information" } }, "EmailSetting": { "SmtpHost": "mail.ladaexpress.vn", "SmtpPort": 25, "SmtpUser": "no-reply@ladaexpress.vn", "SmtpPass": "ikb7TBiRREKln8h2Esor" }, "AppConfigs": { "CertThumbprint":"422be93111e3d23f0f48b2c1ab06a558e427cc01", "CertStoreName": "WebHosting" }, "ApiScopes": [ { "Name": "BackEnd", "DisplayName": "Scope can accessed by Staffs" } ], "Clients": [ { "ClientType": 1, "ClientId": "CPClient", "ClientName": "Backend Clients", "AllowedGrantTypes": [ "hybrid", "client_credentials", "code" ], "RequireConsent": false, "ClientSecrets": "4VRzCH5nHKaIA7V0z8VQ", "RedirectUris": [ "https://localhost:44311/signin-oidc", "https://localhost:44312/signin-oidc", "https://cp.ladaexpress.vn/signin-oidc", "https://app.ladaexpress.vn/signin-oidc", "https://city.ladaexpress.vn/signin-oidc", "https://an.ladaexpress.vn/signin-oidc", "https://cp.dev.3lada.com/signin-oidc", "https://test.cp.ladaexpress.vn/signin-oidc", "https://test.app.ladaexpress.vn/signin-oidc", "https://zto.3lada.com/signin-oidc" ], "PostLogoutRedirectUris": [ "https://localhost:44311/signout-callback-oidc", "https://localhost:44312/signout-callback-oidc", "https://cp.ladaexpress.vn/signout-callback-oidc", "https://app.ladaexpress.vn/signout-callback-oidc", "https://city.ladaexpress.vn/signout-callback-oidc", "https://an.ladaexpress.vn/signout-callback-oidc", "https://cp.dev.3lada.com/signout-callback-oidc", "https://test.cp.ladaexpress.vn/signout-callback-oidc", "https://test.app.ladaexpress.vn/signout-callback-oidc", "https://zto.3lada.com/signout-callback-oidc" ], "AllowedScopes": [ "openid", "profile", "BackEnd", "IdentityServerApi" ], "AllowOfflineAccess": true, "AlwaysSendClientClaims": true, "AccessTokenLifetime": 84600 }, { "ClientType": 3, "ClientId": "app.ladaer", "ClientName": "App 4 Ladaer", "RedirectUris":["id.ladaexpress.vn:/oauthredirect"], "PostLogoutRedirectUris":["https://notused"], "AllowedScopes": [ "openid", "profile", "BackEnd", "IdentityServerApi", "offline_access" ] }, { "ClientType": 2, "ClientId": "AppClients", "AllowedGrantTypes": [ "password" ], "ClientSecrets": "kNbPZcuUMc6nufZ2oIJN", "AllowedScopes": [ "openid", === Ghlt.Identity.deps.json === { "runtimeTarget": { "name": ".NETCoreApp,Version=v6.0", "signature": "" }, "compilationOptions": {}, "targets": { ".NETCoreApp,Version=v6.0": { "Ghlt.Identity/1.0.0": { "dependencies": { "AutoMapper": "10.1.1", "AutoMapper.Extensions.Microsoft.DependencyInjection": "8.1.1", "IdentityServer4": "4.1.2", "IdentityServer4.AccessTokenValidation": "3.0.1", "IdentityServer4.AspNetIdentity": "4.1.2", "Microsoft.AspNetCore.Identity.EntityFrameworkCore": "5.0.9", "Microsoft.AspNetCore.Mvc.NewtonsoftJson": "5.0.9", "Microsoft.EntityFrameworkCore": "5.0.9", "Microsoft.EntityFrameworkCore.SqlServer": "5.0.9", "Microsoft.EntityFrameworkCore.Tools": "5.0.9", "NETCore.MailKit": "2.1.0", "SendGrid": "9.28.0", "Swashbuckle.AspNetCore.Swagger": "6.1.5", "Swashbuckle.AspNetCore.SwaggerGen": "6.1.5", "Swashbuckle.AspNetCore.SwaggerUI": "6.1.5" }, "runtime": { "Ghlt.Identity.dll": {} } }, "AutoMapper/10.1.1": { "dependencies": { "Microsoft.CSharp": "4.7.0", "System.Reflection.Emit": "4.7.0" }, "runtime": { "lib/netstandard2.0/AutoMapper.dll": { "assemblyVersion": "10.0.0.0", "fileVersion": "10.1.1.0" } } }, "AutoMapper.Extensions.Microsoft.DependencyInjection/8.1.1": { "dependencies": { "AutoMapper": "10.1.1", "Microsoft.Extensions.DependencyInjection.Abstractions": "6.0.0", "Microsoft.Extensions.Options": "5.0.0" }, "runtime": { "lib/netstandard2.0/AutoMapper.Extensions.Microsoft.DependencyInjection.dll": { "assemblyVersion": "8.0.0.0", "fileVersion": "8.1.1.0" } } }, "Humanizer.Core/2.8.26": {}, "IdentityModel/4.4.0": { "dependencies": { "Newtonsoft.Json": "13.0.1", "System.Text.Encodings.Web": "4.7.0" }, "runtime": { "lib/netstandard2.0/IdentityModel.dll": { "assemblyVersion": "4.4.0.0", "fileVersion": "4.4.0.0" } } }, "IdentityModel.AspNetCore.OAuth2Introspection/4.0.1": { "dependencies": { "IdentityModel": "4.4.0" }, "runtime": { "lib/netcoreapp3.0/IdentityModel.AspNetCore.OAuth2Introspection.dll": { "assemblyVersion": "4.0.0.0", "fileVersion": "4.0.1.0" } } }, "IdentityServer4/4.1.2": { "dependencies": { "IdentityModel": "4.4.0", "IdentityServer4.Storage": "4.1.2", "Microsoft.AspNetCore.Authentication.OpenIdConnect": "3.1.0", "Microsoft.IdentityModel.Protocols.OpenIdConnect": "5.6.0", "Newtonsoft.Json": "13.0.1" }, "runtime": { "lib/netcoreapp3.1/IdentityServer4.dll": { "assemblyVersion": "4.1.2.0", "fileVersion": "4.1.2.0" } } }, "IdentityServer4.AccessTokenValidation/3.0.1": { "dependencies": { "IdentityModel.AspNetCore.OAuth2Introspection": "4.0.1", "Microsoft.AspNetCore.Authentication.JwtBearer": "3.0.0" }, "runtime": { === Ghlt.Identity.runtimeconfig.json === { "runtimeOptions": { "tfm": "net6.0", "frameworks": [ { "name": "Microsoft.NETCore.App", "version": "6.0.0" }, { "name": "Microsoft.AspNetCore.App", "version": "6.0.0" } ], "configProperties": { "System.GC.Server": true, "System.Reflection.Metadata.MetadataUpdater.IsSupported": false, "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false } } } === package-lock.json === { "name": "guihanglientinh", "requires": true, "lockfileVersion": 1, "dependencies": { "@babel/code-frame": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", "dev": true, "requires": { "@babel/highlight": "^7.12.13" } }, "@babel/compat-data": { "version": "7.13.12", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.13.12.tgz", "integrity": "sha512-3eJJ841uKxeV8dcN/2yGEUy+RfgQspPEgQat85umsE1rotuquQ2AbIub4S6j7c50a2d+4myc+zSlnXeIHrOnhQ==", "dev": true }, "@babel/core": { "version": "7.13.10", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.13.10.tgz", "integrity": "sha512-bfIYcT0BdKeAZrovpMqX2Mx5NrgAckGbwT982AkdS5GNfn3KMGiprlBAtmBcFZRUmpaufS6WZFP8trvx8ptFDw==", "dev": true, "requires": { "@babel/code-frame": "^7.12.13", "@babel/generator": "^7.13.9", "@babel/helper-compilation-targets": "^7.13.10", "@babel/helper-module-transforms": "^7.13.0", "@babel/helpers": "^7.13.10", "@babel/parser": "^7.13.10", "@babel/template": "^7.12.13", "@babel/traverse": "^7.13.0", "@babel/types": "^7.13.0", "convert-source-map": "^1.7.0", "debug": "^4.1.0", "gensync": "^1.0.0-beta.2", "json5": "^2.1.2", "lodash": "^4.17.19", "semver": "^6.3.0", "source-map": "^0.5.0" } }, "@babel/generator": { "version": "7.13.9", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.13.9.tgz", "integrity": "sha512-mHOOmY0Axl/JCTkxTU6Lf5sWOg/v8nUa+Xkt4zMTftX0wqmb6Sh7J8gvcehBw7q0AhrhAR+FDacKjCZ2X8K+Sw==", "dev": true, "requires": { "@babel/types": "^7.13.0", "jsesc": "^2.5.1", "source-map": "^0.5.0" } }, "@babel/helper-annotate-as-pure": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz", "integrity": "sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw==", "dev": true, "requires": { "@babel/types": "^7.12.13" } }, "@babel/helper-builder-binary-assignment-operator-visitor": { "version": "7.12.13", "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz", "integrity": "sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA==", "dev": true, "requires": { "@babel/helper-explode-assignable-expression": "^7.12.13", "@babel/types": "^7.12.13" } }, "@babel/helper-compilation-targets": { "version": "7.13.10", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.10.tgz", "integrity": "sha512-/Xju7Qg1GQO4mHZ/Kcs6Au7gfafgZnwm+a7sy/ow/tV1sHeraRUHbjdat8/UvDor4Tez+siGKDk6zIKtCPKVJA==", "dev": true, "requires": { "@babel/compat-data": "^7.13.8", "@babel/helper-validator-option": "^7.12.17", "browserslist": "^4.14.5", "semver": "^6.3.0" } }, "@babel/helper-create-class-features-plugin": { "version": "7.13.11", "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.11.tgz", "integrity": "sha512-ays0I7XYq9xbjCSvT+EvysLgfc3tOkwCULHjrnscGT3A9qD4sk3wXnJ3of0MAWsWGjdinFvajHU2smYuqXKMrw==", "dev": true, "requires": { "@babel/helper-function-name": "^7.12.13", "@babel/helper-member-expression-to-functions": "^7.13.0", "@babel/helper-optimise-call-expression": "^7.12.13", "@babel/helper-replace-supers": "^7.13.0", "@babel/helper-split-export-declaration": "^7.12.13" } }, "@babel/helper-create-regexp-features-plugin": { === package.json === { "name": "guihanglientinh", "description": "Ung dung quan ly nguoi dung cua guihanglientinh", "author": { "name": "thangtq1009", "email": "thangtq1009@gmail.com", "url": "https://thangtq1009.com" }, "scripts": { "dev": "cross-env ASPNETCORE_ENVIRONMENT=Development NODE_ENV=development dotnet run", "build": "npm run build-vendor:prod && npm run build:prod", "build:prod": "cross-env NODE_ENV=production webpack --progress --hide-modules", "build-vendor:prod": "cross-env NODE_ENV=production webpack --config webpack.config.vendor.js --progress", "build-vendor:dev": "cross-env NODE_ENV=development webpack --config webpack.config.vendor.js --progress", "lint": "eslint -c ./.eslintrc.js ClientApp/**/*.js ClientApp/**/*.vue ClientApp/**/*.json webpack*.js", "install": "npm run build-vendor:dev", "update-packages": "npx npm-check -u" }, "dependencies": { "axios": "^0.21.1", "core-js": "^2.5.3", "vue": "2.6.12", "vue-router": "3.5.1", "vue-server-renderer": "2.6.12", "vue-template-compiler": "2.6.12", "vuex": "3.5.1", "vuex-router-sync": "5.0.0" }, "devDependencies": { "@babel/core": "7.13.10", "@babel/plugin-proposal-class-properties": "^7.0.0", "@babel/plugin-proposal-decorators": "^7.0.0", "@babel/plugin-proposal-export-namespace-from": "^7.0.0", "@babel/plugin-proposal-function-sent": "^7.0.0", "@babel/plugin-proposal-json-strings": "^7.0.0", "@babel/plugin-proposal-numeric-separator": "^7.0.0", "@babel/plugin-proposal-throw-expressions": "^7.0.0", "@babel/plugin-syntax-dynamic-import": "^7.0.0", "@babel/plugin-syntax-import-meta": "^7.0.0", "@babel/plugin-transform-async-to-generator": "^7.0.0", "@babel/plugin-transform-runtime": "^7.0.0", "@babel/preset-env": "^7.0.0", "@babel/register": "^7.0.0", "@babel/runtime": "^7.3.1", "@fortawesome/fontawesome-svg-core": "^1.2.13", "@fortawesome/free-brands-svg-icons": "^5.7.0", "@fortawesome/free-solid-svg-icons": "^5.7.0", "@fortawesome/vue-fontawesome": "^0.1.5", "aspnet-webpack": "^3.0.0", "babel-eslint": "^10.0.1", "babel-loader": "^8.0.5", "bootstrap": "4.6.0", "cross-env": "^5.2.0", "css-loader": "^2.1.0", "eslint": "^5.12.1", "eslint-config-standard": "^12.0.0", "eslint-plugin-html": "^5.0.0", "eslint-plugin-import": "^2.9.0", "eslint-plugin-node": "^8.0.1", "eslint-plugin-promise": "^4.0.1", "eslint-plugin-standard": "^4.0.0", "event-source-polyfill": "^1.0.5", "file-loader": "^3.0.1", "font-awesome": "^4.7.0", "jquery": "^3.3.1", "mini-css-extract-plugin": "^0.5.0", "node-sass": "^4.8.2", "optimize-css-assets-webpack-plugin": "^5.0.1", "popper.js": "^1.14.1", "sass-loader": "^7.1.0", "style-loader": "^0.23.1", "url-loader": "^1.1.2", "vue-loader": "^15.6.2", "webpack": "^4.0.0", "webpack-cli": "4.5.0", "webpack-dev-server": "3.11.2", "webpack-hot-middleware": "2.25.0", "overlayscrollbars": "1.13.1", "overlayscrollbars-vue": "0.2.2", "vee-validate": "3.4.5", "vue-toastification": "1.7.11", "vue-loading-overlay": "3.4.2", "vue2-daterange-picker": "0.6.5", "@kouts/vue-modal": "2.0.5", "vuelidate": "0.7.6" } }