*Check out the video to see me follow along with the code.
Gotten stuck in a rabbit hole figuring out how to add "Log In with Google" to your web app? In this series, I'll cover:
- why you might want to use the Sign-In for Website JS library, and getting started with it
- Adding the library via javascript
- adding it to an existing project (angular & react)
Their docs give you a decent place to start if you know what you're looking for, but there's a few areas where their docs and other guides online can be confusing. There's also minimal guidance as to how to use it within existing projects.
- Am I supposed to be following the Google Identity docs or do I need Google Sign-in for Web??
- Wait, why are those 2 guides so different? They even load different libraries!
- This should be simple! I'm just trying to load a users avatar!!
The answer to "How do I add Log in with Google?" boils down to 1 question you need to be able to answer: What exactly are you trying to do?
- Do you just want to be able to see the users name and picture, maybe their email? Use the Sign-In for Websites library (full walkthrough below).
- Do you have your own user database and want to offer Google login as an extra option? This is Federated Login and you'd want to use their OpenID Connect protocol. This is used by platforms like auth0, firebase, oneidentity.
- Do you want to be able to interact with the users Google account and do things like see their calendar, or create a Google doc? You'll need to use their OAuth workflow.
For the purposes of this series, I'm going to explore when you should use the Sign-In for Websites library which uses the OpenID Connect protocol (also used by Federated Login systems) - this library can be easily misunderstood, but is still incredibly useful. The goal of this authentication library is to let you identify a user with their Google account. Thats it.
So when should I use it?
Good reasons to use it:
- you have some content stored on a backend service that you deliver via an API only after the user has signed in
- you only have to support Google/G-Suite users
- you dont need to authorize users (e.g. allow some users to be admins)
- your site is public
- you have a single-page app
Use cases where it's worth considering federated login:
- you have pre-existing user content stored on a backend service
- you have an internal site that you want to restrict to users from a specific domain. (e.g. only users from @example.com should see it)
- you want to prevent people from seeing your page unless they've logged in. The best you can do with this library is show/hide elements on the page if the user logged in, but thats enough if you only load data from an API after a user has logged in.
The library is designed to be used with HTML/JS and only interacts with your page via the "Sign in with Google" button. You can integrate this with other frameworks like Angular/React which I'll be covering in the next part of this series.
Adding Google Sign-in step-by-step
1. Hello World HTML
To start with, all you need is an index.html file.
<!DOCTYPE html>
<html>
<head>
<title>Google Auth Demo</title>
</head>
<body>
<h1>Welcome to the Demo</h1>
</body>
</html>
2. Add the Google Sign-In Button
Before adding in the button, you first need to create a client ID/secret which is a way of identifying that you, the developer, are allowing users to get the identity information from Google and delivered to your website.
Creating credentials for Sign-In
- Go to the Google API Console - https://console.developers.google.com/apis/dashboard
- Create a new project, or use an existing project if you already have one set up.
- Then click on Credentials -> Create Credentials -> OAuth Client ID
Here's what I put in for this demo:
Name: google-auth-demo
Authorized Javascript Origins: http://localhost:8080
Authorized Redirect URIs: empty
*A note about the Javascript origins: if you have a plain HTML file that you load in your browser using a file path like /home/dperez/index.html, this won't work. You'll need to "serve" your website on your computer so that you have a URL, even if its just localhost. You can use python -m SimpleHTTPServer 8080
(which is commonly available) to serve up your current directory or you can use an npm package like http-server.
You'll then get a Client ID & Client Secret. These are 2 identifiers for your Oauth Client. At this point, you have authorized that Client ID to accept logins and return you the users information. Copy them down. If you accidentally click out of the screen, you can always copy them again later.
Add the library + credentials + button to your HTML
In your index.html page, add the following to your HTML page:
...
<head>
...
<meta name="google-signin-client_id" content="your-client-id-goes-here">
<script src="https://apis.google.com/js/platform.js" async defer></script>
</head>
<body>
<h1>Welcome to the Demo</h1>
<div class="g-signin2"></div>
</body>
The script tag grabs the library from Google that reads your <meta>
tag to use as the Client ID, and then automatically re-styles the button with the CSS class .g-signin2
.
At this point, if you refresh your page, you should see a pretty Sign-In button. If you click it, you'll go through your Google Login flow in a popup, and you'll finally land back on your site, and the button will say, "Signed In".
Great, we're most of the way there! But in its current form, this is still useless.
3. Identify the user
- Update the g-signin2 div to include the
data-onsuccess
attribute:
<div class="g-signin2" data-onsuccess="onSignIn"></div>
That attribute contains the name of the function that will be called once a user has successfully logged in with Google.
- Create a function called "onSignIn".
<body>
...
<script>
function onSignIn(googleUser) {
// get user profile information
console.log(googleUser.getBasicProfile())
}
</script>
</body>
Your onSignIn
function will be called with an argument containing the information provided by Google. If you refresh the page, you'll notice that
- You're automatically signed in
- The button gets updated very shortly after refresh (1s delay)
If you open up your javascript console, you'll see the users information printed:
{
Eea: "108716981921401766503"
Paa: "https://lh3.googleusercontent.com/-y_ba58pC4us/AAAAAAAAAAI/AAAAAAAAAYE/wMGKOxlWR90/s96-c/photo.jpg"
U3: "perez.dp@gmail.com"
ig: "danny perez"
ofa: "danny"
wea: "perez"
}
This is the basic profile containing a series of values that identify me as a user. Under any normal circumstances, this object would have fields like name
or email
, but for some unknown reason (I wish I had the answer but they havent given an answer either), its gibberish - but at least its consistent and hasn't changed.
You can either get the data directly by doing googleUser.getBasicProfile()['U3']
or use the more human-readable approach by using the functions like googleUser.getBasicProfile().getName()
or googleUser.getBasicProfile().getEmail()
. (See here for the javascript client api reference docs)
4. Sign out
Add a sign out button after the user has signed in by adding a button in your index.html and the click handler in your javascript.
index.html
<body>
...
<button onclick="signOut()">Sign out</button>
</body>
function signOut() {
gapi.auth2.getAuthInstance().signOut().then(function() {
console.log('user signed out')
})
}
Great! At this point, we've added a Sign-In with Google button and we can identify the user by name/email. Also, thats it. Thats all this library can help you do.
...but what about basic things like saving users data to the backend? or showing an admin page?! Why isn't this in the docs?! That'll be covered on the next post coming 7/22 - using the js library to add it to your site without HTML.
Update: Here's the link for part 2 of the series - Using the js library
236 Comments. Leave new
[…] 11. adding google sign-in to your webapp – hello world – intricate … […]
[…] 5. adding google sign-in to your webapp – hello world – intricate … […]
Hi
When a website is opened in facebook inapp browser, Google signin doesn’t work. Any suggestion ?
[…] 6. adding google sign-in to your webapp – hello world – intricate … […]
[…] 7. adding google sign-in to your webapp – hello world – intricate … […]
[…] 6. adding google sign-in to your webapp – hello world – intricate … […]
[…] […]
[…] hook it into your React app. If you’ve used the Google Sign-In for Websites library before (see here for my guide on setting it up), there’s an API to let you get at the user’s info. But with the One Tap Sign-In for […]
[…] 5. adding google sign-in to your webapp – hello world – intricate … […]
[…] 5. adding google sign-in to your webapp – hello world – intricate … […]
[…] 5. adding google sign-in to your webapp – hello world – intricate … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] 5. adding google sign-in to your webapp ?? hello world ?? intricate ?? […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – intricate cloud […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] 9. adding google sign-in to your webapp – hello world – intricate … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world … […]
[…] adding google sign-in to your webapp – hello world – intricate … […]
[…] adding google sign-in to your webapp – hello world – intricate … […]
[…] 11. adding google sign-in to your webapp – hello world – intricate … […]
[…] 9. adding google sign-in to your webapp – hello world – intricate … […]
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
[…] 9. adding google sign-in to your webapp – hello world – intricate … […]
I followed your instructions early last year, and was able to use the Google Sign In utilities and access the email address of the user. However, Google has updated their Sign In utilities and deprecated most all of the information that you described in the video I followed. I have followed the upgrade steps but cannot seem to access the email account as I had previously done. Can you update your video? Thanks, Scott.
[…] 5. adding google sign-in to your webapp – hello world – intricate … […]
[…] adding google sign-in to your webapp – hello world […]
[…] 11. adding google sign-in to your webapp – hello world – intricate … […]
[…] adding google sign-in to your webapp – hello world […]
Pretty! This has been a really wonderful post. Many thanks for providing these details.
[…] 9. adding google sign-in to your webapp – hello world – intricate … […]
[…] adding google sign-in to your webapp – hello world – intricate cloud […]
[…] adding google sign-in to your webapp – hello world – intricate cloud […]
[…] https://www.intricatecloud.io/2019/07/adding-google-sign-in-to-your-webapp-pt-1/ […]
Great website. Lots of useful information here. I look forward to the continuation. vox live stream kostenlos ansehen
It s awesome to pay a quick visit this website and reading the views of all mates regarding this piece of writing while I am also zealous of getting familiarity. stinchfield newsmax
I just like the helpful information you provide in your articles
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
This is really interesting, You’re a very skilled blogger. I’ve joined your feed and look forward to seeking more of your magnificent post. Also, I’ve shared your site in my social networks!
I really like reading through a post that can make men and women think. Also, thank you for allowing me to comment!
very informative articles or reviews at this time.
naturally like your web site however you need to take a look at the spelling on several of your posts. A number of them are rife with spelling problems and I find it very bothersome to tell the truth on the other hand I will surely come again again.
I am truly thankful to the owner of this web site who has shared this fantastic piece of writing at at this place.
[…] 9. adding google sign-in to your webapp – hello world – intricate … […]
For the reason that the admin of this site is working, no uncertainty very quickly it will be renowned, due to its quality contents.
Good post! We will be linking to this particularly great post on our site. Keep up the great writing
This is really interesting, You’re a very skilled blogger. I’ve joined your feed and look forward to seeking more of your magnificent post. Also, I’ve shared your site in my social networks!
There is definately a lot to find out about this subject. I like all the points you made
Nice post. I learn something totally new and challenging on websites
Hi there to all, for the reason that I am genuinely keen of reading this website’s post to be updated on a regular basis. It carries pleasant stuff.
This is my first time pay a quick visit at here and i am really happy to read everthing at one place
Great information shared.. really enjoyed reading this post thank you author for sharing this post .. appreciated
I just like the helpful information you provide in your articles
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
This is my first time pay a quick visit at here and i am really happy to read everthing at one place
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
naturally like your web site however you need to take a look at the spelling on several of your posts. A number of them are rife with spelling problems and I find it very bothersome to tell the truth on the other hand I will surely come again again.
naturally like your web site however you need to take a look at the spelling on several of your posts. A number of them are rife with spelling problems and I find it very bothersome to tell the truth on the other hand I will surely come again again.
This was beautiful Admin. Thank you for your reflections.
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
Great information shared.. really enjoyed reading this post thank you author for sharing this post .. appreciated
This was beautiful Admin. Thank you for your reflections.
Cool that really helps, thank you.
I appreciate you sharing this blog post. Thanks Again. Cool.
I think this post makes sense and really helps me, so far I’m still confused, after reading the posts on this website I understand.
This was beautiful Admin. Thank you for your reflections.
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
naturally like your web site however you need to take a look at the spelling on several of your posts. A number of them are rife with spelling problems and I find it very bothersome to tell the truth on the other hand I will surely come again again.
There is definately a lot to find out about this subject. I like all the points you made
Great information shared.. really enjoyed reading this post thank you author for sharing this post .. appreciated
naturally like your web site however you need to take a look at the spelling on several of your posts. A number of them are rife with spelling problems and I find it very bothersome to tell the truth on the other hand I will surely come again again.
I really like reading through a post that can make men and women think. Also, thank you for allowing me to comment!
I appreciate you sharing this blog post. Thanks Again. Cool.
This was beautiful Admin. Thank you for your reflections.
I very delighted to find this internet site on bing, just what I was searching for as well saved to fav
Hi there to all, for the reason that I am genuinely keen of reading this website’s post to be updated on a regular basis. It carries pleasant stuff.
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
I’m often to blogging and i really appreciate your content. The article has actually peaks my interest. I’m going to bookmark your web site and maintain checking for brand spanking new information.
Very well presented. Every quote was awesome and thanks for sharing the content. Keep sharing and keep motivating others.
I very delighted to find this internet site on bing, just what I was searching for as well saved to fav
Good post! We will be linking to this particularly great post on our site. Keep up the great writing
Hi there to all, for the reason that I am genuinely keen of reading this website’s post to be updated on a regular basis. It carries pleasant stuff.
I very delighted to find this internet site on bing, just what I was searching for as well saved to fav
Try to slowly read the articles on this website, don’t just comment, I think the posts on this page are very helpful, because I understand the intent of the author of this article.
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
Pretty! This has been a really wonderful post. Many thanks for providing these details.
very informative articles or reviews at this time.
I am truly thankful to the owner of this web site who has shared this fantastic piece of writing at at this place.
Pretty! This has been a really wonderful post. Many thanks for providing these details.
You’re so awesome! I don’t believe I have read a single thing like that before. So great to find someone with some original thoughts on this topic. Really.. thank you for starting this up. This website is something that is needed on the internet, someone with a little originality!
naturally like your web site however you need to take a look at the spelling on several of your posts. A number of them are rife with spelling problems and I find it very bothersome to tell the truth on the other hand I will surely come again again.
Wonderful post! We will be linking to this great article on our site. Keep up the great writing william hill greyhound radio
For the reason that the admin of this site is working, no uncertainty very quickly it will be renowned, due to its quality contents.
Good post! We will be linking to this particularly great post on our site. Keep up the great writing
I appreciate you sharing this blog post. Thanks Again. Cool.
Pretty! This has been a really wonderful post. Many thanks for providing these details.
I do not even understand how I ended up here, but I assumed this publish used to be great
Very well presented. Every quote was awesome and thanks for sharing the content. Keep sharing and keep motivating others.
There is definately a lot to find out about this subject. I like all the points you made
Nice post. I learn something totally new and challenging on websites
This is my first time pay a quick visit at here and i am really happy to read everthing at one place
I’m often to blogging and i really appreciate your content. The article has actually peaks my interest. I’m going to bookmark your web site and maintain checking for brand spanking new information.
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
I really like reading through a post that can make men and women think. Also, thank you for allowing me to comment!
Good post! We will be linking to this particularly great post on our site. Keep up the great writing
I just like the helpful information you provide in your articles
Awesome! Its genuinely remarkable post, I have got much clear idea regarding from this post
Very well presented. Every quote was awesome and thanks for sharing the content. Keep sharing and keep motivating others.
Very well presented. Every quote was awesome and thanks for sharing the content. Keep sharing and keep motivating others.
very informative articles or reviews at this time.
There is definately a lot to find out about this subject. I like all the points you made
Your article is a great example of how storytelling can be used to convey important messages. Thank you for sharing your story with us.
Try to slowly read the articles on this website, don’t just comment, I think the posts on this page are very helpful, because I understand the intent of the author of this article.
This is my first time pay a quick visit at here and i am really happy to read everthing at one place
I like the efforts you have put in this, regards for all the great content.
Cool that really helps, thank you.
Your article is a great starting point for anyone looking to learn more about this topic. I’ve already shared it with several friends and family members.
Hi there to all, for the reason that I am genuinely keen of reading this website’s post to be updated on a regular basis. It carries pleasant stuff.
I am truly thankful to the owner of this web site who has shared this fantastic piece of writing at at this place.
Nice post. I learn something totally new and challenging on websites
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
slot online key4d beserta judi online terbaik
Hi there to all, for the reason that I am genuinely keen of reading this website’s post to be updated on a regular basis. It carries pleasant stuff.
Very well presented. Every quote was awesome and thanks for sharing the content. Keep sharing and keep motivating others.
Hi there to all, for the reason that I am genuinely keen of reading this website’s post to be updated on a regular basis. It carries pleasant stuff.
Your article is packed with valuable insights and practical tips. I appreciate the way you present the information in a way that is easy to understand and apply.
Pretty! This has been a really wonderful post. Many thanks for providing these details.
This was beautiful Admin. Thank you for your reflections.
Nice post. I learn something totally new and challenging on websites
SPY4D LINK DAFTAR SITUS JUDI SLOT
Judi online SPAM4D
SPAM4D Link Alternative Slots Online Paling dipercaya
SPAM4D Link Alternative Slots Online Paling dipercaya
Judi online SPAM4D
Bocoran slot hari ini spam4d
There is definately a lot to find out about this subject. I like all the points you made
Great information shared.. really enjoyed reading this post thank you author for sharing this post .. appreciated
naturally like your web site however you need to take a look at the spelling on several of your posts. A number of them are rife with spelling problems and I find it very bothersome to tell the truth on the other hand I will surely come again again.
I like the efforts you have put in this, regards for all the great content.
I very delighted to find this internet site on bing, just what I was searching for as well saved to fav
Hello colleagues, how is everything, and what you want
https://images.google.ae/url?q=https://bambu4d.com
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
Your article helped me see this issue in a new light. It’s always valuable to have my views challenged and expanded.
Bandar Judi Togel Terpercaya spam4d
I think this post makes sense and really helps me, so far I’m still confused, after reading the posts on this website I understand.
LIVE SLOT POL4D situs slot terpercaya
I appreciate you sharing this blog post. Thanks Again. Cool.
very informative articles or reviews at this time.
Your article was thought-provoking and well-written. You have a talent for explaining complex ideas in a simple way.
I am an investor of gate io, I have consulted a lot of information, I hope to upgrade my investment strategy with a new model. Your article creation ideas have given me a lot of inspiration, but I still have some doubts. I wonder if you can help me? Thanks.
I’m often to blogging and i really appreciate your content. The article has actually peaks my interest. I’m going to bookmark your web site and maintain checking for brand spanking new information.
Cool that really helps, thank you.
I like the efforts you have put in this, regards for all the great content.
Nice post. I learn something totally new and challenging on websites
Nice post. I learn something totally new and challenging on websites
naturally like your web site however you need to take a look at the spelling on several of your posts. A number of them are rife with spelling problems and I find it very bothersome to tell the truth on the other hand I will surely come again again.
actually awesome in support of me.
I’m often to blogging and i really appreciate your content. The article has actually peaks my interest. I’m going to bookmark your web site and maintain checking for brand spanking new information.
I like the efforts you have put in this, regards for all the great content.
Awesome! Its genuinely remarkable post, I have got much clear idea regarding from this post.
I am an investor of gate io, I have consulted a lot of information, I hope to upgrade my investment strategy with a new model. Your article creation ideas have given me a lot of inspiration, but I still have some doubts. I wonder if you can help me? Thanks.
mencari situs slot online terbaik ? bingo4d tempatnya
You’re so awesome! I don’t believe I have read a single thing like that before. So great to find someone with some original thoughts on this topic. Really.. thank you for starting this up. This website is something that is needed on the internet, someone with a little originality!
Great information shared.. really enjoyed reading this post thank you author for sharing this post .. appreciated
Awesome! Its genuinely remarkable post, I have got much clear idea regarding from this post
This is my first time pay a quick visit at here and i am really happy to read everthing at one place
Great wordpress blog here.. It’s hard to find quality writing like yours these days. I really appreciate people like you! take care
This article is a great example of how to write a persuasive argument. You presented your points clearly and effectively.
I love how you highlight useful resources and references in this article.
I just like the helpful information you provide in your articles
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
Omaslot sebagai bandar judi slot online
This is really interesting, You’re a very skilled blogger. I’ve joined your feed and look forward to seeking more of your magnificent post. Also, I’ve shared your site in my social networks!
mencari situs slot online terbaik ? PamanSlot tempatnya
Your article helped me a lot, is there any more related content? Thanks! https://www.binance.com/ur/register?ref=DB40ITMB
I appreciate the way you tackled this complex topic in a clear and concise manner. Well done!
KENZOTOTO sebagai bandar judi slot online
I think the content you share is interesting, but for me there is still something missing, because the things discussed above are not important to talk about today.
I gotta favorite this web site it seems very helpful invaluable
Great information shared.. really enjoyed reading this post thank you author for sharing this post .. appreciated
QQBET4D Situs Aman & Terpercaya
mencari situs slot online terbaik ? Daget4D tempatnya
This article is a powerful reminder of the importance of this issue. Thank you for bringing attention to it.
I appreciate the practical solution that you have offered in this article.
I appreciate the different perspectives you presented in this post. It’s essential to consider all sides of an issue before forming an opinion.
I agree with many of the points you make in this article and appreciate your perspective.
POL4D MERUPAKAN WEBSITE SLOT ONLINE RESMI
DHX4D situs slot online terpercaya no 1 di indonesia
I truly appreciate your technique of writing a blog. I added it to my bookmark site list and will
I’m often to blogging and i really appreciate your content. The article has actually peaks my interest. I’m going to bookmark your web site and maintain checking for brand spanking new information.
I really like reading through a post that can make men and women think. Also, thank you for allowing me to comment!
Good post! We will be linking to this particularly great post on our site. Keep up the great writing
I really like reading through a post that can make men and women think. Also, thank you for allowing me to comment!
QQBET4D Situs Judi Online Slot Tergacor 2023
I may need your help. I’ve been doing research on gate io recently, and I’ve tried a lot of different things. Later, I read your article, and I think your way of writing has given me some innovative ideas, thank you very much.
I do not even know how I ended up here, but I thought this post was great. I don’t know who you are but definitely you’re going to a famous blogger if you aren’t already 😉 Cheers!
Some truly excellent info , Gladiolus I noticed this.
I do not even understand how I ended up here, but I assumed this publish used to be great
I have read your article carefully and I agree with you very much. This has provided a great help for my thesis writing, and I will seriously improve it. However, I don’t know much about a certain place. Can you help me? https://www.gate.io/signup/XwNAU