職務說明
Synology designs data management solutions engineered to enable businesses to continue turning the wheels of innovation. We are looking for an enthusiastic and self-driven developer to join our team. As a Web Application Product Developer at Synology, you will be tasked with building responsive, aesthetically pleasing, and easy to use web applications powered by our solutions. Your work impacts the user experience of millions of customers.
You will:
We're targeting candidates with:
相關面試題:
職務說明
Synology designs data management solutions engineered to enable businesses to continue turning the wheels of innovation. We are looking for an enthusiastic and self-driven developer to join our team. As a Web Application Product Developer at Synology, you will be tasked with building responsive, aesthetically pleasing, and easy to use web applications powered by our solutions. Your work impacts the user experience of millions of customers.
You will:
We're targeting candidates with:
相關面試題:
About the role
Are you a graduate with a passion for technology and a knack for problem-solving? Do you have a strong foundation in computer science and a desire to create innovative solutions? If so, we have an exciting opportunity for you to join our dynamic team as a Software Engineer, Backend Development.
Suggested Optimal Resume Submission Time: The ideal time to submit your resume is 1-3 months prior to the earliest date you are available to report for duty.
Military Service Information: Please refer to https://reurl.cc/4WYjKj
Responsibilities
Backend Development: Collaborate with the development team to design, implement, and test software applications that meet customer needs and industry standards. Use your creativity and technical expertise to develop robust and efficient code.
Problem-solving: Analyze complex technical challenges and develop effective solutions. Embrace a proactive approach to tackle issues and continuously improve the software development process.
Innovation: Stay up-to-date with the latest industry trends and technologies. Contribute ideas and suggestions to improve existing projects and develop new features.
Collaboration: Work closely with cross-functional teams, including internal users, product managers, and quality assurance, to deliver high-quality software products.
About you
[Minimum qualifications]
Fluently in any programming language.(prefer python)
Enthusiasm for learning and staying updated with emerging technologies.
Proactive, good interpersonal and problem-solving skills.
Understand what happens when you type a URL in the browser and press enter.
Familiar with git.
[Preferred qualifications]
Experience with infrastructure-as-code tools (Terraform / Ansible)
Experience with any CNCF project.
Good understanding of any SQL/NoSQL database (Clickhouse / MongoDB / Redis / etc.)
Internships, projects, or personal coding experience are a plus.
相關面試文章:
https://hackmd.io/@Korin777/info2023-homework3#簡歷
interviewer : 🧑💼
interviewee : 👧🏻
🧑💼: 請簡單介紹一下自己
👧🏻: 我是 XXX 就讀於成大資管所,論文主題是NLP,並曾經參與多個網頁開發,擁有網頁前後端開發經驗。
Interviewer: 🧑💼
請詳細說明你通常如何實現登入登出的功能與細節,包括使用的工具、加密演算法以及邏輯。
Interviewee: 👧🏻
如果使用 next-auth 來實現基於 Session 的登入登出,整體流程會大致如下:
首先,在用戶嘗試登入時,伺服器會處理用戶提交的憑證,例如帳號和密碼。這些密碼並不會直接存儲在資料庫中,而是經過 bcrypt 進行單向加密。登入時會拿用戶輸入的密碼,使用 bcrypt.compare 與資料庫中加密後的密碼進行比對。如果驗證成功,next-auth 會為用戶建立一個 Session。
這個 Session 的資料會存儲在伺服器端,而在用戶端,next-auth 會透過 Cookies 設置一個 Session Token。這個 Token 是與伺服器的 Session ID 對應的,並且可以設置 HttpOnly 和 Secure 標籤來增強安全性。
伺服器每次收到用戶的請求時,會從 Cookies 中提取 Session Token,然後檢查這個 Token 是否有效。如果有效,就可以從 Redis 中提取用戶的相關資訊,比如用戶 ID 或權限等,從而完成身份驗證。
至於登出過程,next-auth 會直接清除伺服器端的 Session 資料,並向用戶端返回一個過期的 Cookie,這樣可以確保用戶無法再使用之前的 Session 進行請求。為了進一步確保安全性,我通常會建議設置一個短的 Session 有效期限,並在每次請求時自動延長 Session 的有效期,這樣可以平衡安全性和用戶體驗。