mirror of
https://github.com/supabase/supabase.git
synced 2026-07-07 01:34:22 +08:00
On firefox, I got:
```
Uncaught TypeError: supabase.auth.user().then is not a function
fetchUserDetails http://192.168.1.230:8080/index.js:62
EventHandlerNonNull* http://192.168.1.230:8080/index.js:18
EventListener.handleEvent* http://192.168.1.230:8080/index.js:10
index.js:62:6
fetchUserDetails http://192.168.1.230:8080/index.js:62
fetchUserDetails self-hosted:1176
(Async: EventHandlerNonNull)
<anonymous> http://192.168.1.230:8080/index.js:18
(Async: EventListener.handleEvent)
<anonymous> http://192.168.1.230:8080/index.js:10
```
My solution might not be the best but it makes it work :)
Please continue showing examples about direct access from javascript client (like Firebase do).
77 lines
2.2 KiB
JavaScript
77 lines
2.2 KiB
JavaScript
|
|
var SUPABASE_URL = '<supabase url - retrieve from supabase dashboard>'
|
|
var SUPABASE_KEY =
|
|
'<client key - retrieve from supabase dashboard>'
|
|
|
|
var supabase = Supabase.createClient(SUPABASE_URL, SUPABASE_KEY)
|
|
window.userToken = null
|
|
|
|
document.addEventListener('DOMContentLoaded', function (event) {
|
|
var signUpForm = document.querySelector('#sign-up')
|
|
signUpForm.onsubmit = signUpSubmitted.bind(signUpForm)
|
|
|
|
var logInForm = document.querySelector('#log-in')
|
|
logInForm.onsubmit = logInSubmitted.bind(logInForm)
|
|
|
|
var userDetailsButton = document.querySelector('#user-button')
|
|
userDetailsButton.onclick = fetchUserDetails.bind(userDetailsButton)
|
|
|
|
var logoutButton = document.querySelector('#logout-button')
|
|
logoutButton.onclick = logoutSubmitted.bind(logoutButton)
|
|
})
|
|
|
|
const signUpSubmitted = (event) => {
|
|
event.preventDefault()
|
|
const email = event.target[0].value
|
|
const password = event.target[1].value
|
|
|
|
supabase.auth
|
|
.signUp({email, password})
|
|
.then((response) => {
|
|
document.querySelector('#access-token').value = response.data.access_token
|
|
document.querySelector('#refresh-token').value = response.data.refresh_token
|
|
alert("Logged in as " + response.user.email)
|
|
})
|
|
.catch((err) => {
|
|
alert(err.response.text)
|
|
})
|
|
}
|
|
|
|
const logInSubmitted = (event) => {
|
|
event.preventDefault()
|
|
const email = event.target[0].value
|
|
const password = event.target[1].value
|
|
|
|
supabase.auth
|
|
.signIn({email, password})
|
|
.then((response) => {
|
|
document.querySelector('#access-token').value = response.data.access_token
|
|
document.querySelector('#refresh-token').value = response.data.refresh_token
|
|
// response.error ?
|
|
alert("Logged in as " + response.user.email)
|
|
})
|
|
.catch((err) => {
|
|
alert(err.response.text)
|
|
})
|
|
}
|
|
|
|
const fetchUserDetails = () => {
|
|
alert(JSON.stringify(supabase.auth.user()))
|
|
}
|
|
|
|
|
|
const logoutSubmitted = (event) => {
|
|
event.preventDefault()
|
|
|
|
supabase.auth
|
|
.signOut()
|
|
.then((response) => {
|
|
document.querySelector('#access-token').value = ''
|
|
document.querySelector('#refresh-token').value = ''
|
|
alert("Logout successful")
|
|
})
|
|
.catch((err) => {
|
|
alert(err.response.text)
|
|
})
|
|
}
|