사용자 이름이 포함된 딥 링크를 통한 간단한 이메일 로그인

학교 포럼에서 로그인 장벽을 낮추기 위해 다음과 같은 절차를 도입하고 싶습니다:

  1. (주로 비공개인) 포럼으로 메일로 전송되는 링크에는 대상 사용자의 사용자명을 포함해야 합니다(예: forum.my.tld/t/123#user=toka).

  2. 로그인하지 않은 사용자가 이 링크를 열면, 버튼을 클릭하여 로그인 링크를 전송하도록 제안하는 페이지가 표시됩니다.

  3. 버튼을 클릭하면 로그인 토큰을 포함한 로그인이 사용자에게 전송되어야 하며, 이를 통해 사용자는 추가적인 조작 없이 특정 시간 동안 대상 페이지를 열 수 있어야 합니다. 그렇지 않으면 “로그인 링크 재전송” 버튼이 제공되어야 합니다.

이 기능이 이미 어딘가에 구현되어 있나요?

아니라면: 이를 구현하는 데 사용할 수 있는 어떤 메커니즘이 존재합니까?

2개의 좋아요

시스템에 로그인한 사용자가 Discourse에도 로그인되도록 DiscourseConnect를 사용하려는 것입니다.

DiscourseConnect 설정 - Discourse 공식 단일 로그인 (sso)

다른 시스템은 없습니다.
대부분의 사용자는 이메일로만 포럼을 이용합니다.

1개의 좋아요

이미 이메일 로그인을 지원합니다:

따라서 이 과정을 자동화하거나 단순화하는 것은 분명히 가능합니다.

5개의 좋아요

네. 이는 포럼에 로그인하는 우리의 주요 방법입니다. 그러나 사용자의 상당수에게는 이 방식이 너무 복잡하게 느껴지는 것 같습니다.

또한, 일부 사용자는 커뮤니케이션 시 서로 다른 이메일 주소를 사용하는 문제도 직면하고 있습니다. 예를 들어, (at)gmail.com과 (at)googlemail.com, 또는 사용자 이름에 점이 추가된 이메일 주소와 그렇지 않은 이메일 주소가 있는 경우입니다. 그들은 한때 종이(네, 죄송합니다. 독일입니다) 등록 양식에 적었던 이메일 주소를 기억하지 못하며, 이러한 문제나 메일 헤더를 확인하여 자신의 "로그인 이메일 주소"를 알아볼 수 있다는 가능성에 대해 무지한 경우가 많습니다.

따라서 저는 사용자에게 전송된 링크를 통해 Discourse 로그인 절차에 대한 추가적인 지식 없이 로그인할 수 있는 방법을 조사하고 있습니다.

1개의 좋아요

보안상의 위험이 분명히 존재하지만, 이를 수용할 수 있다면 이메일을 통해 로그인할 때 우리가 생성하는 링크를 자동으로 생성하는 자동화 기능은 이미 계정이 있는 사용자들에 한해 충분히 실현 가능합니다.

1개의 좋아요

음. 저는 제 제안에서 이 문제를 우회하려고 했습니다.
직접 사용자를 로그인 상태로 만드는 링크가 위험하다는 점은 이해합니다.

하지만 제안된 메커니즘에서는 제가 볼 수 있는 유일한 위험은 원치 않는 로그인 링크가 사용자에게 전송되는 것뿐입니다.

1개의 좋아요

첫 번째로 작동하는 구현체를 만들었습니다:

이제 알림 내의 모든 discourse 링크에 사용자 정보를 추가하는 방법을 배우고 있습니다.

2개의 좋아요

이 기능은 이제 구현되었습니다.

로그인 후 destination_url로 리디렉션하기 위해 다음과 같은 코어 메서드를 오버라이드하지 않아도 되는 방법을 문의할 적절한 곳은 어디일까요?

그리고

?

1개의 좋아요