JSON Web Token (JWT) là một cơ chế bảo vệ tài nguyên có thể nói đến bây giờ nó phổ biến rộng rãi đến mức nhà nhà, người người ai cũng biết đến nó. Nhưng hiện tại qua nhiều diễn đàn, vẫn còn đâu đó những câu hỏi như làm sao lấy lại token mới nếu như hết hạn sử dụng refresh token?
Nên lưu token ở đâu trong ba phương pháp phổ biến như cookie, localStorage, sessionStorage. Sau những bài viết về JSON Web Token(JWT) đa số các bạn cũng đã hiểu và đã apply cho các ứng dụng của mình. Các luồng đi của việc created và verify một token xem như đã xong, nhưng có có một vấn đề quan trọng mà các bạn bỏ qua.
Token là gì? Authentication là gì? Session, cookies, SessionId... Nó là gì? Những khái niệm này tưởng chừng như ai cũng biết. Nhưng không hẳn như vậy, khi được hỏi thì trả lời một cách mông lung kiểu như mã hoá dữ liệu vậy. Đây, các bạn có thể tham khảo thêm định nghĩa ở bài post này.
Điều gì khiến JWT phổ biến. Lý do mà khiến `JWT` trở nên phổ biến trong những năm gần đây chính xác là 2014 là chúng có thể chứa được nhiều kiểu dữ liệu như `JSON`, và nó có nhiều lợi ích so với các kiểu truyền thống...
Axios interceptor la gi? Tại sao lại được quan tâm nhiều đến vậy, hiệu quả của việc sử dụng interceptors trong Axios như thế nào? Và cơ chế lấy lại token khi token hết hạn khi sử dụng interceptors axios kết hợp với refreshToken.
Bearer token là gì? Đây là một câu hỏi rất hay, ngay bản thân tôi cũng không hiểu tại sao tôi lại cắm đầu vào code mà không hiểu vì sao người ta lại quy định Bearer trước token trong việc Authorization trên header.
Ở những bài trước chúng ta đã nói nhiều về JWT là gì? Vì sao phải sử dụng JWT, trong suốt quá trình sử dụng JWT chúng tôi có nhận được nhiều phản hồi về chủ đề JWT. Trong đó có một vấn đề mà có nhiều bạn chưa hiểu đó là 'Refresh token là gì'. Nếu bạn có chung một câu hỏi như vậy thì bài viết này sẽ dành cho bạn.
Refresh token là gì? Ở bài trước tôi đã hướng dẫn các bạn cách xác thực REST API với JWT(JSON Web Token) thông qua một Access Token, và hôm nay chúng ta tiếp tục tìm hiểu về Refresh Token. Tại sao lại có thêm Refresh Token? Và Refresh Token dùng để làm gì?
JWT là gì? JSON Web Token. Ở phần trước chúng ta đang nói đến việc xác thực firebase với custom token. Nhưng nhiều bạn quay sang hỏi về việc xác thực JWT (JSON Web Token). Chắc do các bạn sử dụng JWT nhiều hơn, cho nên hôm nay, trong bài viết này tôi sẽ viết một module nhỏ để giúp các bạn nào chưa hiểu thì có thể hiểu thêm.
Trong phần mở bài tôi sẽ nói luôn, vì tôi sợ mất thời gian của các bạn khi click vào để đọc bài viết. Việc xác xác thực thông qua custom token là ở trường hợp hệ thống của của không xác thực qua những hình thức third party như (facebook, github, google mail...). Nếu bạn không thuộc trường hợp này stop tại đây và bạn đọc thêm về những lợi ích khi sử dụng firebase như hosting, notification, app index, storage, authentication, cloud mesenger, test lab
Ở bài viết trước, chúng ta đã làm rõ về cách lưu trữ token ở đâu trên Client. Và cách nào an toàn hơn và hạn chế được các XSS attack. Do đó ở bài này chúng ta sẽ triển khai xây dựng một RESTful APIs bảo mật token hạn chế việc đánh cắp khi mà càng ngày hackers luôn luôn rình mò ở quanh ta :D.
Sau khi bài viết sử dụng Cookie và Session để hoàn tất xác minh đăng nhập, và chúng ta đã phát hiện ra một số vấn đề ở cơ chế đăng nhập này. Thì bầy giờ chúng ta tiếp tục theo dõi và tìm hiểu cơ chế login khi sử dụng token và đây là một phương pháp đang được các dev quan tâm nhất hiện nay.
jsonwebtoken rất dễ bị tấn công vì nhiều yếu tố trong đó việc lưu trữ access token trên Client cũng là một trong điểm yếu đó. Có hai cách phổ biến để tránh bị đánh cắp đó là đừng sử dụng jwt hoặc không để token ở máy khách. Chúng tôi đã chọn cách không lưu trên Client.
Khi sử dụng FCM (Firebase) với sendMulticast thì theo tài liệu chỉ có thể gửi một lúc giới hạn 500 tokens hay hiểu là 500 thiết bị một lúc. Mẹo nhỏ trong bài viết này hướng dẫn bạn có thể làm được nhiều hơn với 500 tokens.
parseurl javascript - Là một cụm từ mang ý nghĩa get tất cả params có trên url về thành một object, để sử dụng cho việc lập trình. Dạo gần đây, tôi có làm việc với một API đó là hệ thống paymentwall. Một hệ thống tài chính thế giới. Và rắc rối nảy sinh từ đây. Hãy xem nhé.
Bám sát vào câu hỏi. "Nếu accessToken bị đánh cắp thì sẽ xử lý như thế nào cũng như làm sao để phát hiện điều đó?". Suy nghĩ. Tại sao nhà tuyển dụng lại hỏi vào thẳng câu đó, hay là từ câu đó nếu mà bạn trả lời được thì sẽ dẫn dắt một câu chuyện khác?
How to set header and options in axios? Một câu hỏi nhanh và thiết thực, và những hướng dẫn sau đây nhanh gọn nhẹ hướng đến người đọc nắm bắt nhanh nhất có thể khi học Axios.
OAuth với Node.js và Github trong bài viết KÈM SOURCE này thì chúng ta sẽ biết thêm một cách triển khai login với github. Chính vì cơ chế của github rất tiện lợi nên việc viết code cũng không phức tạp như nhiều người từng nghĩ.
Hệ thống web hay ứng dụng của bạn có thực sự an toàn không? Mỗi ngày có gần 2K users vào trang tips javascript. Ở đây đa số là hiện tại là những lập trình viên và cũng có thể là những developers tương lai. Nhưng có một điểm chung như thế này đó là việc ai cũng mong muốn viết code làm sao cho xong ứng dụng của mình mà quên đi việc nó có an toàn về bảo mật cho hệ thống mình hay chưa?
SSO là gì? Tên tiếng Anh đầy đủ của SSO là Single SignOn, hay còn gọi là cơ chế đăng nhập một lần nhưng có thể sử dụng khắp mọi nơi. SSO có trong nhiều hệ thống ứng dụng. Người dùng chỉ cần đăng nhập một lần để truy cập vào tất cả các hệ thống ứng dụng đáng tin cậy lẫn nhau. Nó bao gồm một cơ chế có thể ánh xạ thông tin đăng nhập chính này với các ứng dụng khác để đăng nhập cùng một người dùng. Nó là một trong những giải pháp phổ biến nhất được sử dụng rộng rãi hiện nay. Và nếu bạn là một lập trình viên thì bạn cần nên hiểu nó.
Firebase push notification. Hay có thể gọi là firebase send notification from server. Bạn hình dung thế này, khi điện thoại của bạn nhận được notification bởi một ứng dụng mà bạn đã install và làm sao bạn lại nhận được notification đó.
Firebase là gì? Hầu hết bất kỳ ứng dụng trên app hoặc web cũng xác thực người dùng khi muốn sử dụng những chức năng trong ứng dụng. Trong thời buổi hiện nay, ngoài việc tự cho người dùng tạo tài khoản trên server của mình nghĩa là cho user đăng ký trực tiếp trên trang của mình, thì còn có việc hỗ trợ thêm việc sign up / sign in qua các nhà cung cấp authentication khác, chẳng hạn như Google, Facebook hoặc Twitter.
Chủ đề này đã có người từng hỏi tips javascript, cụ thể là "Anh ơi! Mình thay thế jwt cho session được không?". Với tôi thật sự mà nói là không nên. Nhưng chưa có cơ hội để viết một bài cho rõ ràng.
Project Express và Node.Js - Đây là một trong số câu hỏi tuần này. Một kiến trúc tốt chưa chắc phù hợp với người này, người kia. Nhưng xét về tổng thể thì 10 người 8 người đồng ý
Đăng nhập là chức năng thường được sử dụng trong mọi trang web hay những app hiện nay. Không khó để nhận ra vấn đề này đang được quan tâm nhất bởi vì lướt qua những page về lập trình như tips javascript, hay javascript Việt Nam đều thấy nhiều câu hỏi ở đó. Thật sự bạn có biết khi enter thì cơ chế nó hoạt động như thế nào không? Và hiện nay, những ứng dụng lớn họ triển khai login như thế nào? Hôm nay chúng tôi sẽ giới thiệu một số phương pháp đăng nhập phổ biến nhất
OAuth 2.0 là gì? OAuth 2.0 là một giao thức tiêu chuẩn mở cho phép các ứng dụng truy cập vào dữ liệu được người thông qua những ứng dụng khác. Ví dụ: một trò chơi có thể lấy thông tin người dùng trong Facebook hoặc app theo dõi location có thể lấy thông tin người dùng trong Foursquare.
Học lập trình web, hay học lập trình bất cứ một ngôn ngữ nào như C, php, python… cũng phải có những lộ trình, nhưng nếu bạn đi sai ngay từ đầu thì có thể để quay lại cũng không ít thời gian. Với bài viết được đăng lên geeksforgeeks.org thì mọi chuyện sẽ dễ dàng hơn với các bạn.
Sau khi chúng ta triển khai thực hiện chức năng [Go 29: Implement IUserLogin - Register] và `User` sẽ nhận được `OTP` được gửi qua `EMAIL` or `SMS` đã đăng ký. Sau nó nếu User nhập OTP
Proxy server là một khái niệm hot từ những năm gần đây, vì nếu server của bạn có những thông tin nhạy cảm như ngân hàng thì việc thiết lập một máy chủ proxy bên ngoài tường lứa là điều cần thiết nhất. Bởi vì khi một ai đó muốn truy cập vào Server này thì nhiệm vụ của nó phải qua mặt proxy server.
Axios vs Fetch - Nếu như bạn đã từng làm việt với HTTP calls trong javascript hay nodejs thì bạn cũng đã từng sử dụng 1 trong 2 thằng này. Axios là một module mạnh mẽ và phổ biến trong javascript, và tương tự Fetch được phát hành 2015 cho đến nay
Là một developer JavaScript, bạn thường sẽ thường xuyên gặp trường hợp này, và thay vì search trên google cách chuyển một object thành một query string parameters, thì trong bài này chúng ta sẽ đi lướt qua những cách nhanh và hiệu quả nhất.
Vanilla JavaScript là gì? Và cách remove những object bị trùng lặp trong một Array như thế nào khi sử dụng Vanilla Javascript? Thì bài viết này cũng chính là bài viết đầu tiên của mình trong cộng đồng javascript. Mình hy vọng bài viết này sẽ làm sáng tỏ những điều trên. Let's begin
Autocomplete search là một thuật toán rất phức tạp, và đỏi hòi nhiều thuật toán được áp dụng. Nếu bạn đã từng sử dụng Sublime Text để code thì ở đó bạn để ý rằng, đó là một hệ thống tìm kiếm thông minh, khi chúng ta tìm kiếm một vài ký tự thì hệ thống đã gợi ý cho bạn những từ khoá tìm kiếm cụ thể hơn.
Connection pool trong nodejs là rất quan trọng, nó là một kỹ thuật rất quan trọng cho việc tương tác bất kỳ resource như Mysql, PostgreSQL, Redis or MongoDB.
Hầu hết mọi người không chuẩn bị nhiều cho tương lai, nhưng kết quả của việc chuẩn bị và không chuẩn bị sẽ rất khác nhau. Tin tôi đi... Bời vì khi 40 tuổi tôi mới nhận ra mình đã mất thời gian để mài VŨ KHÍ như thế nào?
Lập trình javascript là quá trình học và hiểu. Hiểu ở đây, không phải là để code chạy đúng là xong, còn nhanh chậm hay code khó đọc cho những người khác thì không quan tâm. Đó là sai lầm lớn nhất trong nghề lập trình. Trong code của bạn, điều quan trọng nhất có ba yếu tố đó là.
Video sẽ đưa ra 3 vấn đề cho thấy cách hoạt động của Session có vấn đề (Nếu Anh Chị là dev từ lv1 trở lên thì xem video là hay nhất, còn nếu từ level 0 đến lv1 chưa lo về tiền lương cho lắm thì cứ đọc tóm tắt này là được. Tôi cố gắng làm cả hai.)
Xin chào cộng đồng javascsript. Mình là Thành Nam, là một thành viên mới của cộng đồng javascript anonystick. Chúc tất cả các bạn có một bài đọc thật vui vẻ. Để tiếp theo "Cuộc thi ứng dụng nhỏ sử dụng javascript" những ví dụ chỉ dùng javascript thì bài này mình sẽ giới thiệu cho các bạn một ứng dụng mà mình đã tham khảo rất nhiều nơi. Đó là ứng dụng editor WYSIWYG.
Google Drive là một dịch vụ lưu trữ có sẵn cho người dùng Google và cho phép bạn lưu trữ tất cả các loại files. Google api cho phép developers thao tác với API để có thể tạo folders, upload file rất hữu ích như một số trường hợp làm dịch vụ lưu trữ.
Có nhiều bạn hỏi mình về hai cái này khi các bạn đó học loopback. Loopback là gì? Thì các bạn tìm hiểu sau nhé. Trong loopback hỗ trợ rất nhiều về dynamic model. Và có tích hợp luôn authentication & authorization. Bài này mình sẽ giúp các bạn hiểu hai khái niệm này thông qua một bài viết của của developer... levantuan
console.log là gì? Một câu hỏi hài hước vì ở bất kỳ đâu trong javascript các lập trình viên cũng quen thuộc với console.log. Nhưng tôi cá đôi lúc nó cũng khiến chúng ta rơi vào cảnh hỗn loạn khi print tất cả các record đều giống nhau. Tôi cũng vậy, trong khi viết code tôi cảm thấy bất tiện và tôi cảm thấy sự cần thiết khi out ra với các color mà tôi chỉ định. Bài viết này tôi sẽ thảo luận với các bạn về vấn đề này.
Rules for Firebase? Nếu bạn nào or team nào phát triển ứng dụng với Firebase thì việc set rules là một việc rất cần thiết và nó quan trọng trong việc bảo vệ dữ liệu trong Firebase. Trong bài viết nhanh này, tôi show cho các bạn những cách set rules trong firebase. Với những ai sử dụng thì việc này rất cần thiết để đọc bài này.
Triển khai quy trình đăng ký người dùng trong dự án Shopdev, bao gồm kiểm tra email hoặc số điện thoại, mã hóa dữ liệu, gửi OTP qua Kafka và AWS, và lưu trữ dữ liệu bảo mật.
<p>Vậy câu hỏi đặt ra ở đây nhé: Nếu có async/await rồi thì Promise có còn lỗi thời? không cần thiết dùng đến hay không? Ở bài tiếp theo tôi sẽ cho các bạn câu trả lời mà hầu hết các LTV đều có thể chưa có câu trả lời rõ ràng hoặc chưa phân biệt được khi nào sử dụng hai loại đó. Và quan trọng hơn là lúc nào sử dụng async/await hay promise để đạt hiệu suất tối ưu.</p>
Lazy load là gì? Trong bài viết này tôi sẽ nói rõ về phần vì sao không nên sử dụng thư viện lazy load (https://github.com/verlok/lazyload). Một lib rất được ưa chuộng, nhưng với riêng tôi thì nói không với thư viện này? Vì sao ư? Có thể nhiều bạn sẽ cười nhưng vui lòng đọc qua những điều mà tôi đã trải qua với thư viện này. Còn Công nghệ lazy thì quá tuyệt vời.
Trên thực tế, việc xây dựng bán vé TÀU TẾT về cơ bản là một ứng dụng toàn diện của công nghệ có tính đồng thời cao trong các tình huống cụ thể. Ví dụ như mới tổ chức bán vé vào dịp tết, chuẩn bị bán vé liveshow MỸ TÂM, hoặc bán Iphone 17... Các kịch bản có tính đồng thời cao và khả năng thiết kế kiến trúc có tính tương tranh cao là khả năng then chốt không thể thiếu đối với các nhà phát triển. ..
Firebase là Backend-as-a-Service - BaaS. Firebase theo nghĩa rộng là nền tảng phát triển ứng dụng trên thiết bị di động và web. Firebase giải phóng các developer để tập trung tạo ra trải nghiệm cho người dùng sử dụng sản phẩm một cách tuyệt vời.
Try catch xuất hiện hầu hết tất cả những ngôn ngữ lập trình, chứ không riêng gì javascript. Một lập trình viên giỏi không có nghĩa là code không có lỗi, mà giỏi ở đây đó chính là, anh ta biết quản lý lỗi một cách xuất sắc nhất, một bug hay error có thể giết chết một process của một ứng dụng. Trong bài post này, chúng ta sẽ đi xem try...catch làm được gì?
Câu hỏi phỏng vấn Nodejs - phân biệt Cookie và Session. Trước tiên hãy xem xét sự giống nhau của Cookie và Session là được sử dụng để theo dõi và xác định danh tính của người dùng.
Ở phía backend thì ngoài tối ưu hóa việc triển khai code là ưu tiên hàng đầu, tiếp theo là về SQL, và sau đó chính là bộ nhớ đệm hay gọi là cache. Cache cũng có hai loại đó là Bộ nhớ cache cục bộ và Dịch vụ bộ nhớ đệm.
Promise là gì? Khi nào sử dụng Promise ? Ở phần trước, chúng ta đã nói về callback là gì? Và trong bài viết này, chúng ta sẽ làm rõ vấn đề này thông qua những ví dụ hay xảy ra trong lập trình javascript.
Adapter pattern được sử dụng trong đời sống rất nhiều chứ không phải là chỉ trong các mẫu thiết kết của lập trình. Nó được ứng dụng rộng rãi trong thế giới thực, tôi nghĩ chắc cũng vì lý do đó cho nên nó đã được áp dụng nguyên lý vào trong lập trình javascript nói riêng và các ngôn ngữ khác nói Chung. Tôi sẽ chia sẻ cho các bạn một ví dụ cụ thể để hiểu rõ hơn về Adapter pattern javascript