Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
G
Geth-Modification
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
张蕾
Geth-Modification
Commits
ab10c155
Unverified
Commit
ab10c155
authored
May 08, 2019
by
Péter Szilágyi
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
cmd/faucet: sunset Google+ authentication
parent
9454508b
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
6 additions
and
36 deletions
+6
-36
faucet.go
cmd/faucet/faucet.go
+6
-36
No files found.
cmd/faucet/faucet.go
View file @
ab10c155
...
...
@@ -445,10 +445,14 @@ func (f *faucet) apiHandler(conn *websocket.Conn) {
return
}
continue
case
strings
.
HasPrefix
(
msg
.
URL
,
"https://plus.google.com/"
)
:
if
err
=
sendError
(
conn
,
errors
.
New
(
"Google+ authentication discontinued as the service was sunset"
));
err
!=
nil
{
log
.
Warn
(
"Failed to send Google+ deprecation to client"
,
"err"
,
err
)
return
}
continue
case
strings
.
HasPrefix
(
msg
.
URL
,
"https://twitter.com/"
)
:
username
,
avatar
,
address
,
err
=
authTwitter
(
msg
.
URL
)
case
strings
.
HasPrefix
(
msg
.
URL
,
"https://plus.google.com/"
)
:
username
,
avatar
,
address
,
err
=
authGooglePlus
(
msg
.
URL
)
case
strings
.
HasPrefix
(
msg
.
URL
,
"https://www.facebook.com/"
)
:
username
,
avatar
,
address
,
err
=
authFacebook
(
msg
.
URL
)
case
*
noauthFlag
:
...
...
@@ -704,40 +708,6 @@ func authTwitter(url string) (string, string, common.Address, error) {
return
username
+
"@twitter"
,
avatar
,
address
,
nil
}
// authGooglePlus tries to authenticate a faucet request using GooglePlus posts,
// returning the username, avatar URL and Ethereum address to fund on success.
func
authGooglePlus
(
url
string
)
(
string
,
string
,
common
.
Address
,
error
)
{
// Ensure the user specified a meaningful URL, no fancy nonsense
parts
:=
strings
.
Split
(
url
,
"/"
)
if
len
(
parts
)
<
4
||
parts
[
len
(
parts
)
-
2
]
!=
"posts"
{
return
""
,
""
,
common
.
Address
{},
errors
.
New
(
"Invalid Google+ post URL"
)
}
username
:=
parts
[
len
(
parts
)
-
3
]
// Google's API isn't really friendly with direct links. Still, we don't
// want to do ask read permissions from users, so just load the public posts and
// scrape it for the Ethereum address and profile URL.
res
,
err
:=
http
.
Get
(
url
)
if
err
!=
nil
{
return
""
,
""
,
common
.
Address
{},
err
}
defer
res
.
Body
.
Close
()
body
,
err
:=
ioutil
.
ReadAll
(
res
.
Body
)
if
err
!=
nil
{
return
""
,
""
,
common
.
Address
{},
err
}
address
:=
common
.
HexToAddress
(
string
(
regexp
.
MustCompile
(
"0x[0-9a-fA-F]{40}"
)
.
Find
(
body
)))
if
address
==
(
common
.
Address
{})
{
return
""
,
""
,
common
.
Address
{},
errors
.
New
(
"No Ethereum address found to fund"
)
}
var
avatar
string
if
parts
=
regexp
.
MustCompile
(
"src=
\"
([^
\"
]+googleusercontent.com[^
\"
]+photo.jpg)
\"
"
)
.
FindStringSubmatch
(
string
(
body
));
len
(
parts
)
==
2
{
avatar
=
parts
[
1
]
}
return
username
+
"@google+"
,
avatar
,
address
,
nil
}
// authFacebook tries to authenticate a faucet request using Facebook posts,
// returning the username, avatar URL and Ethereum address to fund on success.
func
authFacebook
(
url
string
)
(
string
,
string
,
common
.
Address
,
error
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment