Magic Auth와 Webflow를 사용하여 블로그 회원 사이트를 만드는 방법
💁🏻♀️ 주의: 이 강좌는 웹플로우의 사용자 정의 코드를 사용합니다. 이 코드는 비용을 지불하는 웹플로우 계정에서 사용할 수 있습니다.
다음은 최종 결과Live Demo!
마법 장치
Webflow 설정
Webflow 탐색 모음 링크 만들기
Webflow는 기본적으로 홈 페이지를 제공합니다. 따라서 내비게이션 표시줄을 디자인하십시오.
탐색 모음 구성 요소를 드래그하여 배경색을 흰색으로 변경하고 다음 각 링크에 저장합니다.
homeLink
입니다.loginLink
.profileLink
.logOutLink
.그리고 하나 더;모든 페이지에 이 내비게이션 표시줄이 필요하기 때문에 그것을 기호로 바꾸십시오.이것은 내비게이션 표시줄을 다시 사용할 수 있는 구성 요소로 만들 것이다.
Webflow 페이지 설계 및 링크
페이지를 디자인해서 내비게이션 표시줄에 연결할 때가 되었다.다음은 당신이 필요로 하는 페이지 목록입니다. 각 페이지마다 그것들을 어떻게 디자인하는지에 대한 단계별 안내서가 있습니다.
1. 집
드래그 앤 드롭:
마지막으로 Home의 내비게이션 링크 설정을 편집하여
Type: Page
과Page: Home
를 가지도록 한다.2. 로그인
드래그 앤 드롭:
loginBtn
를 입력합니다(참고: 이메일 텍스트 필드에는 이미 IDemail
가 있습니다.Type: Page
과 Page: Login
를 다시 편집합니다.3. 소개
드래그 앤 드롭:
emailAddress
를 지정합니다.4. 로그아웃
사용자가 로그아웃하면 로그인 페이지로 라우팅해야 합니다.이를 위해 로그아웃된 내비게이션 링크 설정을 편집하여
Type: Page
와 Page: Profile
를 가지도록 합니다.웹 페이지를 디자인하고 링크해 주셔서 감사합니다🥳! 그런 다음 Magic SDK를 사용하여 사용자의 로그인 또는 로그아웃을 확인하고 특정 페이지를 보호하는 방법을 학습합니다.
Webflow 사이트 범위의 사용자 정의 코드 작성
Webflow의 사이트 범위 사용자 정의 코드는 사이트 전체에 적용됩니다.이 옵션을 사용하여 Magic SDK를 초기화하고 일부 페이지를 보호하며 로그아웃할 수 있습니다.
다음 코드를 웹플로우 사이트의 프로젝트 설정 > 사용자 정의 코드에 붙여넣기만 하면 됩니다.
첫 번째 코드
마법 SDK를 획득합니다.
<!-- 1. Get Magic SDK -->
<script src="https://cdn.jsdelivr.net/npm/magic-sdk/dist/magic.js"></script>
네가 전에 열었던 그 페이지를 기억하니?이 페이지에서 복사 테스트를 하면 키를 발표하고 붙여넣을 수 있습니다
Type: Page
.이 코드는 Magic SDK를 초기화합니다.<!-- 2. Initialize Magic -->
<script>
const magic = new Magic('your_test_publishable_key');
</script>
바닥글 코드
로그인한 사용자가 개인 페이지에 접근할 수 있는지 확인하십시오. 로그아웃한 사용자는 할 수 없습니다.
<!-- 4. When the user is logged in/logged out. -->
<script>
let privatePages = [
'/profile',
'/' // This is where your private blogs live!
];
let publicPages = [
'/login'
]
// Get the user & check whether or
// not the user is logged in. Show or
// hide pages depending on the outcome.
const getUser = async () => {
// The page user is currently on
const currentPath = window.location.pathname;
// Checks if a user is currently logged in
// to the Magic SDK
const isLoggedIn = await magic.user.isLoggedIn();
// If the user is logged in...
if (isLoggedIn) {
// prevent them from accessing public pages.
if (publicPages.includes(currentPath)) {
window.location.replace('/');
} else {
// Or hide links they don't need to see
loginLink.style.display = 'none';
}
} else {
// If the user is logged out and
// they try to access a private page,
// send them back to the login page.
if (privatePages.includes(currentPath)) {
window.location.replace('/login');
} else {
// Or hide links they shouldn't be able to see
profileLink.style.display = 'none';
logOutLink.style.display = 'none';
homeLink.style.display = 'none';
}
}
};
getUser();
</script>
로그인한 사용자가 로그아웃할 수 있도록 합니다.
<!-- 5. Log out the currently authenticated Magic user. -->
<script>
const logOut = async () => {
try {
await magic.user.logout();
const isLoggedIn = await magic.user.isLoggedIn();
console.log('Is the user still logged in? ', isLoggedIn); // => `false`
} catch (error) {
// Handle errors if required!
console.log('Ran into this error while logging out: ', error);
}
console.log('WHOO! User has logged out.');
}
// Call the logOut function when the user
// clicks the Log Out Nav Link.
logOutLink.addEventListener('click', logOut);
</script>
Webflow 페이지 사용자 정의 코드만 작성
특정 페이지 설정의 사용자 정의 코드는 이 페이지에만 적용됩니다.이 옵션을 사용하면 로그인과 파일 설정 기능을 사용할 수 있습니다.다음 코드 블록을 상응하는 정적 페이지
Page: Login
에 표시하기 전의 페이지 설정 내부에 붙여넣기만 하면 됩니다.로그인
사용자의 로그인을 허용합니다.
<!-- 3. Log in with Magic Link -->
<script>
// Log in or create a new user.
const login = async () => {
const emailVal = email.value;
await magic.auth.loginWithMagicLink({
email: emailVal
})
.then(() => {
// Take user to the home page once they're
// logged in.
window.location.replace('./');
})
.catch((error) => {
console.log("Error while logging in: ", error);
})
}
// Call the login function when the user
// clicks the Login button.
loginBtn.addEventListener('click', login);
</script>
간략한 상황
사용자의 전자 메일이 표시되는지 확인합니다.
<!-- 4. Ensure the user's email is displayed -->
<script type="text/javascript">
const displayUserName = async () => {
const {
email,
publicAddress
} = await magic.user.getMetadata();
let elementToDisplay = document.getElementById('emailAddress');
elementToDisplay.innerHTML = email;
}
displayUserName();
</script>
코드 테스트
훌륭하다🤩🪄! 너는 이미 블로그 회원 사이트를 세웠다.코드를 테스트하려면 사이트를 발표하고 실시간 URL을 방문해야 합니다.
로더 추가
페이지 사이를 탐색할 때 UI에서 지연이 발생합니다.매직 SDK를 초기화하는 데 몇 초가 걸리기 때문이다.이 문제를 해결하려면 마운트를 추가할 수 있습니다.
'your_test_publishable_key'
를 입력합니다.프로젝트 설정 > 사용자 정의 코드 > 바닥글 코드의
</body>
기능을 업데이트합니다.const getUser = async () => {
// The page user is currently on
const currentPath = window.location.pathname;
// Checks if a user is currently logged in
// to the Magic SDK
const isLoggedIn = await magic.user.isLoggedIn();
// If the user is logged in...
if (isLoggedIn) {
// prevent them from accessing public pages.
if (publicPages.includes(currentPath)) {
window.location.replace('/');
} else {
// Or hide links they don't need to see
loginLink.style.display = 'none';
// Get rid of loader when user gets to correct page
loader.style.display = 'none';
}
} else {
// If the user is logged out and
// they try to access a private page,
// send them back to the login page.
if (privatePages.includes(currentPath)) {
window.location.replace('/login');
} else {
// Or hide links they shouldn't be able to see
profileLink.style.display = 'none';
logOutLink.style.display = 'none';
homeLink.style.display = 'none';
// Get rid of loader when user gets to correct page
loader.style.display = 'none';
}
}
};
오늘은 여기까지!
보시다시피 웹플로우로 예쁜 블로그 회원 사이트를 설계하는 것은 매우 쉽다.원소만 드래그하면 돼!안전한 인증 및 인증 시스템을 위해 사이트에 Magic auth를 통합합니다.
다음에 Webflow와Magic auth로 어떤 유형의 회원 사이트를 만들고 싶을 때, 이 안내서는 줄곧 당신을 지원할 것입니다.다음에 다시 이야기합시다🙋🏻♀️.
Reference
이 문제에 관하여(Magic Auth와 Webflow를 사용하여 블로그 회원 사이트를 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/magiclabs/how-to-build-a-blog-membership-site-with-magic-auth-and-webflow-539e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(Magic Auth와 Webflow를 사용하여 블로그 회원 사이트를 만드는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/magiclabs/how-to-build-a-blog-membership-site-with-magic-auth-and-webflow-539e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)