사용자가 Mastodon 인증 링크를 추가할 수 있도록 하려는데 도움이 필요합니다

안녕하세요, 사용자 프로필 페이지에 마스토돈(Mastodon) 프로필 인증 링크를 추가하려고 합니다:

인증

프로필 메타데이터의 링크 소유자임을 직접 인증할 수 있습니다. 이를 위해 연결된 웹사이트에는 마스토돈 프로필로 되돌아가는 링크가 포함되어야 합니다. 되돌아가는 링크에는 rel="me" 속성이 반드시 필요합니다. 링크의 텍스트 콘텐츠는 중요하지 않습니다. 예시는 다음과 같습니다:

<a rel="me" href="https://mastodon.social/@BartV">Mastodon</a>

Clickable Social Icon Links on Profile TC를 포크했으며, 사용자 프로필 페이지에 마스토돈 링크가 정상적으로 표시됩니다. 하지만 핸들바(Handlebars) 템플릿으로 렌더링되기 때문에 ‘html/no javascript’ 버전에서는 보이지 않고, 마스토돈 크롤러도 이를 인식하지 못합니다.

HTML 버전에는 다음 섹션이 있는 것을 확인했습니다:

<div class="user-crawler">
<img src='https://blenderartists.org/user_avatar/blenderartists.org/bartv/45/529382_2.png' alt='bartv' title='bartv' />
<h2 class='username'>bartv</h2>

테마 구성 요소(theme component)를 통해 이 섹션에 필요한 링크가 포함된 줄을 추가할 수 있는 방법이 있을까요?

아마도 푸터에 추가하면 될 것 같습니다. 표시하지 않으려면 해당 div를 숨기는 CSS를 추가하면 됩니다.

아, 제가 설명을 잘 못 드렸네요. 사용자가 자신의 Mastodon URL을 커스텀 필드로 입력할 수 있고, 제 포럼에서 해당 사용자의 개인 프로필 페이지에 해당 링크를 추가하고 싶습니다.

결국 당신은 모든 사이트가 자신의 사용자를 검증할 수 있다고 제안하고 있는 것입니다. 즉, mastodontti.fi에 계정이 있으므로, 그곳에서 내 프로필에 태그를 추가하고 인증을 받을 수 있다는 뜻이죠.

음… 그건 Mastodon 방식의 인증 이념과는 정확히 맞지 않습니다.

별로 그렇지 않아요. 그냥 다른 사이트에서도 같은 사람이라는 것만 표시할 뿐, 그 이상은 아닙니다. GitHub도 비슷한 것을 준비하고 있죠.

하지만 어쨌든, 이걸 두고 논쟁하려는 건 아니고 제 질문에 대한 해결책만 찾고 싶을 뿐이에요 :slight_smile:

CSS를 사용할 필요가 없습니다. 그냥 링크이므로 <a rel="me" .. ></a>만 있으면 충분합니다.

그것

네, 하지만 크롤러가 접근할 수 있어야 합니다. JavaScript로 렌더링되므로 Ember/Handlebars 스크립트는 작동하지 않습니다.

당신은 핵심을 놓치고 있습니다. 그렇다면 이를 위해 공개된 마스토돈(Mastodon) 서버를 아무거나 사용할 수 있을 텐데요. 그리고 당신은 어떤 사이트의 '사용자’라는 개념을 상당히 넓게 정의하고 있습니다.

하지만 당신은 논쟁 중입니다. 왜냐하면 그것이 당신의 해결책이 옳은지를 결정하기 때문이죠.

그리고 실제로 그렇게 되어 있습니다. 시작 태그와 종료 태그 사이에 빈 값이나 null이 있으면 정상적으로 작동하며, 방문자에게 표시되지도 않고 추가적인 CSS 규칙도 필요하지 않습니다.

죄송하지만 아닙니다. 마스토돈 아이콘 아래에 있는 링크를 확인해 보세요 제 프로필 페이지 여기:

요소를 검사하면 rel=“me” 코드를 볼 수 있지만, 페이지 소스를 확인하거나 wget과 같은 도구를 사용하여 페이지를 로드하면 클라이언트 측에서 생성되므로 해당 코드가 보이지 않습니다. 크롤러는 그 코드를 볼 수 없습니다.

그렇게 말하신다면…

페이지 푸터에 HTML을 추가하여 나 자신을 검증할 수 있다는 점은 알고 있습니다. 하지만 사용자들도 커스텀 필드로 자신의 마스토ドン(Mastodon) URL을 입력할 수 있고, 이를 프로필 페이지에 표시하며, 이를 통해 자신도 검증할 수 있기를 원합니다.

같은 맥락인지 확인하기 위해, Get verified on Mastodon with your website | Opensource.com 에 나와 있는 것과 유사한 방식으로 사용자가 Discourse 사이트를 통해 Mastodon에서 본인 인증을 하도록 하려는 건가요?

그렇다면, 사용자에게 일반 게시물이나 프로필(bio)에 해당 링크를 추가하도록 유도하는 것이 효과적일 수 있습니다. 이 두 가지 방법 모두 사이트의 크롤러 뷰에 표시됩니다. 테마 컴포넌트에서 크롤러 템플릿을 오버라이드하는 것은 불가능하다고 생각합니다: Header Submenus - #134 by awesomerobot.

제가 겪고 있는 문제는 Discourse가 링크에서 rel="me" 속성을 자동으로 제거한다는 점입니다. 이를 우회하는 방법이 없다면, 해당 속성은 플러그인을 통해 AllowLister에 추가해야 할 것입니다. 저는 Discourse/Mastodon 통합에 대해 잘 알지 못하지만, 이는 다른 사이트들에게도 유용할 수 있는 부분일 것 같습니다.

아, 그러면 좀 다르군요.

프로필 페이지에 표시되도록 설정해 두면(페이지에서 사용 가능하도록) 테마 컴포넌트를 사용해 특정 플러그인 아웃렛에 추가할 수 있고, 그 다음 기본 표시를 숨기도록 CSS를 추가하면 됩니다.

에디터를 띄워 기존 코드를 살펴보는 것 없이 제가 아는 것은 이것뿐입니다. 하지만 힌트로는 충분할지도 모르겠네요.

그렇게 해 봤는데, (내 생각엔) Theme Components가 항상 클라이언트 사이드에서 렌더링되어 크롤러에 출력 결과가 보이지 않는다는 문제가 남아 있습니다. 일단 이 아이디어는 보류할게요. 머리가 아파오네요 :slight_smile:

아, 미안해. 한꺼번에 다 신경 쓸 수가 없었어. 그래. 자바스크립트 버전이 아닌 버전에 추가하려면 플러그인이 필요할 거야. 그래서 레일스 템플릿을 오버라이드해야 할 것 같아.

오늘 여기 와서 바로 이걸 찾고 있었습니다! 제가 운영하는 디스커스 커뮤니티의 메타 헤더에 인증 링크를 넣었긴 하지만, 뭔가 좀 아쉬운 느낌이 듭니다.

#activitypub를 통한 연동(federation)을 고려할 때, Discourse와 Mastodon을 비롯한 관련 연동 플랫폼에서 정당한 멤버임을 검증할 수 있는 기능이 있다면 합리적일 것 같습니다.