fix: redirect users after signup via magiclink
This commit is contained in:
parent
8e4108a4b2
commit
8626b54de8
|
|
@ -117,10 +117,13 @@ pub async fn invite_handler(
|
||||||
) -> Result<WebApiResponse<()>, WebApiError<'static>> {
|
) -> Result<WebApiResponse<()>, WebApiError<'static>> {
|
||||||
state
|
state
|
||||||
.gotrue_client
|
.gotrue_client
|
||||||
.magic_link(&MagicLinkParams {
|
.magic_link(
|
||||||
email: param.email,
|
&MagicLinkParams {
|
||||||
..Default::default()
|
email: param.email,
|
||||||
})
|
..Default::default()
|
||||||
|
},
|
||||||
|
Some("/".to_owned()),
|
||||||
|
)
|
||||||
.await?;
|
.await?;
|
||||||
Ok(WebApiResponse::<()>::from_str("Invitation sent".into()))
|
Ok(WebApiResponse::<()>::from_str("Invitation sent".into()))
|
||||||
}
|
}
|
||||||
|
|
@ -308,7 +311,7 @@ pub async fn sign_up_handler(
|
||||||
|
|
||||||
let sign_up_res = state
|
let sign_up_res = state
|
||||||
.gotrue_client
|
.gotrue_client
|
||||||
.sign_up_with_referrer(¶m.email, ¶m.password, Some("/"))
|
.sign_up(¶m.email, ¶m.password, Some("/"))
|
||||||
.await?;
|
.await?;
|
||||||
|
|
||||||
match sign_up_res {
|
match sign_up_res {
|
||||||
|
|
@ -378,10 +381,13 @@ async fn send_magic_link(
|
||||||
) -> Result<WebApiResponse<()>, WebApiError<'static>> {
|
) -> Result<WebApiResponse<()>, WebApiError<'static>> {
|
||||||
state
|
state
|
||||||
.gotrue_client
|
.gotrue_client
|
||||||
.magic_link(&MagicLinkParams {
|
.magic_link(
|
||||||
email: email.to_owned(),
|
&MagicLinkParams {
|
||||||
..Default::default()
|
email: email.to_owned(),
|
||||||
})
|
..Default::default()
|
||||||
|
},
|
||||||
|
Some("/".to_owned()),
|
||||||
|
)
|
||||||
.await?;
|
.await?;
|
||||||
Ok(WebApiResponse::<()>::from_str("Magic Link Sent".into()))
|
Ok(WebApiResponse::<()>::from_str("Magic Link Sent".into()))
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -376,7 +376,7 @@ impl Client {
|
||||||
.magic_link(&MagicLinkParams {
|
.magic_link(&MagicLinkParams {
|
||||||
email: email.to_owned(),
|
email: email.to_owned(),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
})
|
}, None)
|
||||||
.await?;
|
.await?;
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
@ -676,7 +676,7 @@ impl Client {
|
||||||
|
|
||||||
#[instrument(level = "debug", skip_all, err)]
|
#[instrument(level = "debug", skip_all, err)]
|
||||||
pub async fn sign_up(&self, email: &str, password: &str) -> Result<(), AppResponseError> {
|
pub async fn sign_up(&self, email: &str, password: &str) -> Result<(), AppResponseError> {
|
||||||
match self.gotrue_client.sign_up(email, password).await? {
|
match self.gotrue_client.sign_up(email, password, None).await? {
|
||||||
Authenticated(access_token_resp) => {
|
Authenticated(access_token_resp) => {
|
||||||
self.token.write().set(access_token_resp);
|
self.token.write().set(access_token_resp);
|
||||||
Ok(())
|
Ok(())
|
||||||
|
|
|
||||||
|
|
@ -55,12 +55,7 @@ impl Client {
|
||||||
}
|
}
|
||||||
|
|
||||||
#[tracing::instrument(skip_all, err)]
|
#[tracing::instrument(skip_all, err)]
|
||||||
pub async fn sign_up(&self, email: &str, password: &str) -> Result<SignUpResponse, GoTrueError> {
|
pub async fn sign_up(
|
||||||
self.sign_up_with_referrer(email, password, None).await
|
|
||||||
}
|
|
||||||
|
|
||||||
#[tracing::instrument(skip_all, err)]
|
|
||||||
pub async fn sign_up_with_referrer(
|
|
||||||
&self,
|
&self,
|
||||||
email: &str,
|
email: &str,
|
||||||
password: &str,
|
password: &str,
|
||||||
|
|
@ -224,14 +219,17 @@ impl Client {
|
||||||
to_gotrue_result(resp).await
|
to_gotrue_result(resp).await
|
||||||
}
|
}
|
||||||
|
|
||||||
pub async fn magic_link(&self, magic_link_params: &MagicLinkParams) -> Result<(), GoTrueError> {
|
pub async fn magic_link(
|
||||||
|
&self,
|
||||||
|
magic_link_params: &MagicLinkParams,
|
||||||
|
redirect_to: Option<String>,
|
||||||
|
) -> Result<(), GoTrueError> {
|
||||||
let url = format!("{}/magiclink", self.base_url);
|
let url = format!("{}/magiclink", self.base_url);
|
||||||
let resp = self
|
let mut req_builder = self.client.request(Method::POST, &url);
|
||||||
.client
|
if let Some(redirect_to) = redirect_to {
|
||||||
.request(Method::POST, &url)
|
req_builder = req_builder.header("redirect_to", redirect_to);
|
||||||
.json(&magic_link_params)
|
}
|
||||||
.send()
|
let resp = req_builder.json(&magic_link_params).send().await?;
|
||||||
.await?;
|
|
||||||
check_gotrue_result(resp).await
|
check_gotrue_result(resp).await
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -229,7 +229,7 @@ async fn setup_admin_account(
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let admin_email = gotrue_setting.admin_email.as_str();
|
let admin_email = gotrue_setting.admin_email.as_str();
|
||||||
let password = gotrue_setting.admin_password.as_str();
|
let password = gotrue_setting.admin_password.as_str();
|
||||||
let res_resp = gotrue_client.sign_up(admin_email, password).await;
|
let res_resp = gotrue_client.sign_up(admin_email, password, None).await;
|
||||||
match res_resp {
|
match res_resp {
|
||||||
Err(err) => {
|
Err(err) => {
|
||||||
if let app_error::gotrue::GoTrueError::Internal(err) = err {
|
if let app_error::gotrue::GoTrueError::Internal(err) = err {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue