From 0543a556545143e7d23048ff96487ad848174b74 Mon Sep 17 00:00:00 2001 From: eduveks Date: Tue, 13 Apr 2021 20:49:05 +0000 Subject: [PATCH] Registo e login. --- config/_development.json | 9 +- dbs/social_ests.mv.db | Bin 53248 -> 57344 bytes server/services/cities/get.js | 7 ++ server/services/cities/options.js | 1 + server/services/register.options.js | 1 + server/services/register.post.js | 56 +++++++++ server/setup/_end.js | 5 + server/setup/_schema-form-3-pessoa.js | 48 ++++---- website/package.json | 1 + website/src/App.css | 38 ------- website/src/App.js | 129 ++++++++------------- website/src/App.less | 5 + website/src/pages/Home/index.js | 9 ++ website/src/pages/Home/index.less | 0 website/src/pages/Login/index.js | 94 +++++++++++++++ website/src/pages/Login/index.less | 4 + website/src/pages/Main/index.js | 24 ++++ website/src/pages/Main/index.less | 0 website/src/pages/Register/index.js | 158 ++++++++++++++++++++++++++ website/src/pages/Register/index.less | 4 + 20 files changed, 449 insertions(+), 144 deletions(-) create mode 100644 server/services/cities/get.js create mode 100644 server/services/cities/options.js create mode 100644 server/services/register.options.js create mode 100644 server/services/register.post.js delete mode 100644 website/src/App.css create mode 100644 website/src/App.less create mode 100644 website/src/pages/Home/index.js create mode 100644 website/src/pages/Home/index.less create mode 100644 website/src/pages/Login/index.js create mode 100644 website/src/pages/Login/index.less create mode 100644 website/src/pages/Main/index.js create mode 100644 website/src/pages/Main/index.less create mode 100644 website/src/pages/Register/index.js create mode 100644 website/src/pages/Register/index.less diff --git a/config/_development.json b/config/_development.json index dddc416..cf06e61 100644 --- a/config/_development.json +++ b/config/_development.json @@ -42,5 +42,12 @@ "enabled": true, "origins": [ "http://eduardo-velasques.dev.netuno.org:10030" ] } - ] + ], + "jwt": { + "enabled": true, + "secret": "NN,NvyQTB!ZMHc7*", + "access_expires": 60, + "refresh_expires": 1440, + "algorithm": "HS512" + } } diff --git a/dbs/social_ests.mv.db b/dbs/social_ests.mv.db index 386d6d1a0ba0b72e166f89043240c8d779ecf632..145ba39de2e60339ae2aa312ee78f629ba4cb72f 100644 GIT binary patch delta 10003 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 { const [ data, setData ] = useState([]); useEffect(()=> { _service({ @@ -27,77 +33,38 @@ function App() { } }); }, []); - const onFinish = (values) => { - console.log('Success:', values); - }; - const onFinishFailed = (errorInfo) => { - console.log('Failed:', errorInfo); - }; return ( -
-
- logo -

- Edit src/App.js and save to reload. -

-
- Learn React - - { JSON.stringify(data) } -
-
- - - - - - - - - - Remember me - - - - - -
-
+ + +
+ + Home + Login + Register + +
+ + + + + + + + + +
+ + + + + + +
+

Plataforma Social

+ Desenvolvimento de demonstração. +
+ + ); -} - -export default App; +}; diff --git a/website/src/App.less b/website/src/App.less new file mode 100644 index 0000000..d5589d2 --- /dev/null +++ b/website/src/App.less @@ -0,0 +1,5 @@ + +main { + padding: 50px; + min-height: calc(100vh - 150px) !important; +} diff --git a/website/src/pages/Home/index.js b/website/src/pages/Home/index.js new file mode 100644 index 0000000..513cad7 --- /dev/null +++ b/website/src/pages/Home/index.js @@ -0,0 +1,9 @@ +import React, { useState, useEffect } from "react"; + +export default () => { + return ( +
+

Home

+
+ ); +}; diff --git a/website/src/pages/Home/index.less b/website/src/pages/Home/index.less new file mode 100644 index 0000000..e69de29 diff --git a/website/src/pages/Login/index.js b/website/src/pages/Login/index.js new file mode 100644 index 0000000..15258df --- /dev/null +++ b/website/src/pages/Login/index.js @@ -0,0 +1,94 @@ +import React, { useState, useEffect } from "react"; + +import { Form, Input, Button, Checkbox } from 'antd'; + +import _auth from '@netuno/auth-client'; + +import { Redirect } from "react-router-dom"; + +import './index.less'; + +const layout = { + labelCol: { span: 8 }, + wrapperCol: { span: 16 }, +}; +const tailLayout = { + wrapperCol: { offset: 8, span: 16 }, +}; + +export default () => { + const [ loading, setLoading ] = useState(false); + const onFinish = (values) => { + setLoading(true); + _auth.login({ + username: values.username, + password: values.password, + success: ()=> { + setLoading(false); + }, + fail: ()=> { + alert("Fail."); + } + }); + }; + + const onFinishFailed = (errorInfo) => { + console.log('Failed:', errorInfo); + }; + + if (_auth.isLogged()) { + return ; + } + return ( +
+

Login

+
+
+ + + + + + + + + + Relembrar o acesso. + + + + + +
+
+
+ ); +}; diff --git a/website/src/pages/Login/index.less b/website/src/pages/Login/index.less new file mode 100644 index 0000000..df69bba --- /dev/null +++ b/website/src/pages/Login/index.less @@ -0,0 +1,4 @@ + +.login { + max-width: 600px; +} diff --git a/website/src/pages/Main/index.js b/website/src/pages/Main/index.js new file mode 100644 index 0000000..d6e5d03 --- /dev/null +++ b/website/src/pages/Main/index.js @@ -0,0 +1,24 @@ +import React, { useState, useEffect } from "react"; + +import { Redirect } from "react-router-dom"; + +import { Button } from 'antd'; + +import _auth from '@netuno/auth-client'; + +export default () => { + const [ loading, setLoading ] = useState(false); + if (!_auth.isLogged()) { + return ; + } + const onLogout = ()=> { + _auth.logout(); + setLoading(true); + } + return ( +
+

Olá...

+ +
+ ); +}; diff --git a/website/src/pages/Main/index.less b/website/src/pages/Main/index.less new file mode 100644 index 0000000..e69de29 diff --git a/website/src/pages/Register/index.js b/website/src/pages/Register/index.js new file mode 100644 index 0000000..c272b27 --- /dev/null +++ b/website/src/pages/Register/index.js @@ -0,0 +1,158 @@ +import React, { useState, useEffect } from "react"; + +import { Form, Input, Button, Select } from 'antd'; + +import _service from '@netuno/service-client'; + +import './index.less'; + +const layout = { + labelCol: { span: 8 }, + wrapperCol: { span: 16 }, +}; +const tailLayout = { + wrapperCol: { offset: 8, span: 16 }, +}; + +export default () => { + const [ loading, setLoading ] = useState(false); + const [ cities, setCities ] = useState([]); + + useEffect(()=> { + _service({ + url: 'cities', + success: (response) => { + setCities(response.json); + }, + fail: (e) => { + console.log("Service Error", e); + } + }) + }, []); + + const onFinish = (values) => { + setLoading(true); + _service({ + method: 'POST', + url: "register", + data: values, + success: (response) => { + setLoading(false); + }, + fail: (e) => { + console.log("Service Error", e); + } + }); + }; + + const onFinishFailed = (errorInfo) => { + console.log('Failed:', errorInfo); + }; + + return ( +
+

Register

+
+
+ + + + + + + + + + + + + + + + + + + + + + + +
+
+
+ ); +}; diff --git a/website/src/pages/Register/index.less b/website/src/pages/Register/index.less new file mode 100644 index 0000000..807d93f --- /dev/null +++ b/website/src/pages/Register/index.less @@ -0,0 +1,4 @@ + +.register { + max-width: 600px; +}