React Todo Example App: ساختن یک برنامه Full-Stack با احراز هویت کاربر و Codehooks.io NoSQL Backend

در چشم انداز توسعه وب به سرعت در حال تحول امروزی، توسعه تمام پشته به طور فزاینده ای حیاتی شده است. توانایی کار یکپارچه در هر دو فن آوری جلویی و پشتیبان، توسعه دهندگان را قادر می سازد تا برنامه های جامع و قوی ایجاد کنند.
این نوشته یک برنامه نمونه React Todo را به عنوان یک برنامه تمام پشته شامل یک کلاینت فرانت اند React، احراز هویت کاربر با استفاده از Auth0.com و یک API پشتیبان با پایگاه داده NoSQL با استفاده از codehooks.io را پوشش می دهد.
Codehooks.io یک سرویس API و NoSQL آسان است که به توسعه دهندگان این امکان را می دهد که باطن و ادغام پایگاه داده را با سرعتی دیوانه وار بسازند و مستقر کنند.
برنامه Todo به کاربران اجازه می دهد تا موارد TODO را ایجاد، به روز رسانی و حذف کنند. احراز هویت کاربر توسط Auth0 انجام می شود که راه حل احراز هویت ایمن و آسان برای استفاده را ارائه می دهد.
می توانید یک پست وبلاگ مفصل برای توسعه برنامه Todo را در اینجا بخوانید.
یک مثال زنده را اینجا ببینید
رابط کاربری برنامه Todo
احراز هویت با Auth0.com
در اینجا چند نمونه کد از برنامه آورده شده است:
راه اندازی برنامه
import { Auth0Provider } from "@auth0/auth0-react";
const domain = "YOUR_AUTH0_DOMAIN";
const clientId = "YOUR_AUTH0_CLIENT_ID";
ReactDOM.render(
<Auth0Provider
domain={domain}
clientId={clientId}
// Other configuration options
>
<App />
</Auth0Provider>,
document.getElementById("root")
);
Backend API و پایگاه داده
import { app, Datastore } from 'codehooks-js';
app.get('/todo', async (req, res) => {
const db = await Datastore.open();
// Fetch and return todo items from the database
const db = await Datastore.open();
db.getMany('tododata', {
filter: {owner: req.user.email}, // filter Todo items by authenticated user.email
sort: {completed: 1, _id: -1}
}).pipe(res);
});
app.post('/todo', async (req, res) => {
const db = await Datastore.open();
// Create a new todo item in the database
});
app.put('/todo/:id', async (req, res) => {
const db = await Datastore.open();
// Update a todo item in the database
});
app.delete('/todo/:id', async (req, res) => {
const db = await Datastore.open();
// Delete a todo item from the database
});
export default app.init();
اجزای جلویی را واکنش نشان دهید
import { useAuth0 } from "@auth0/auth0-react";
const TodoList = () => {
const { isAuthenticated, loginWithRedirect } = useAuth0();
if (!isAuthenticated) {
return (
<div>
<p>Please log in to view your todos.</p>
<button onClick={loginWithRedirect}>Log In</button>
</div>
);
}
// Render the todo list for authenticated users
};
export default TodoList;
فراخوانی API پایگاه داده از React frontend
const callApi = async () => {
try {
const token = await getAccessTokenSilently();
const response = await fetch(`${apiOrigin}/todo`, {
headers: {
"Authorization": `Bearer ${token}`
},
});
let responseData = await response.json();
console.log('Get data', responseData);
responseData = responseData.map((todo) => {
if (todo.completed === undefined) {
todo.completed = false;
}
return todo;
})
if (responseData) {
setState({
...state, todoItems: responseData,
error: null
});
}
} catch (error) {
console.error('API error', error)
setState({
...state,
error: error.error || error.message
});
}
};
این مثالها نشان میدهند که چگونه برنامه Auth0 را برای احراز هویت کاربر یکپارچه میکند و از باطن Codehooks.io برای رسیدگی به درخواستهای API و تعامل با پایگاه داده NoSQL استفاده میکند. مؤلفههای React رابط کاربری و منطق را برای مدیریت موارد انجام کار مدیریت میکنند.
توجه: نمونههای کد ساده شدهاند و ممکن است شامل تمام تنظیمات لازم و مدیریت خطا نباشند. توصیه می شود برای درک کامل از عملکرد برنامه به کد منبع اصلی و مستندات مراجعه کنید.
کد نویسی مبارک! 💪