Skip to content

Commit 6138979

Browse files
committed
权限自由设置
fix typo
1 parent bebd443 commit 6138979

File tree

3 files changed

+34
-14
lines changed

3 files changed

+34
-14
lines changed

README.md

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,19 @@
11
# ms-graph-auth-helper
22

3-
一个可以快速帮助获取Microsoft Graph API(OneDriver)令牌的小工具
3+
一个可以快速帮助获取Microsoft Graph API令牌的小工具
4+
5+
并且可以自定义获取权限的类型
46

57
~~在弄网盘API的时候觉得太麻烦了就搞了个这个~~
68

7-
![ms-auth-run](https://user-images.githubusercontent.com/7535224/147150440-a5074cc7-ce73-4663-b9ee-09a323949666.png)
9+
![run](https://user-images.githubusercontent.com/7535224/147194336-5c75b46f-bd1d-4b71-8587-a09a0cdf1005.png)
10+
11+
![res](https://user-images.githubusercontent.com/7535224/147194576-7222b3f5-813d-4da1-86ed-69b60f09eb3c.png)
812

913
## 如何使用
1014

15+
**以获取OneDriver相关的API权限为例**
16+
1117
在获取令牌时,请按照以下步骤操作
1218

1319
#### 注册新应用

main.go

Lines changed: 23 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -17,17 +17,28 @@ func main() {
1717
fmt.Println("将跳转浏览器授权")
1818
fmt.Println("请输入App的应用程序(客户端) ID [Client Id]")
1919
clientId := readLine()
20-
err := OpenBrowser(BuildMsAuthorizeUrl(clientId))
20+
fmt.Println("请输入App的API权限,并使用空格隔开")
21+
fmt.Println("如果为空则默认为(offline_access Files.Read Files.Read.All Files.ReadWrite Files.ReadWrite.All)")
22+
permission := readLine()
23+
if len(permission) == 0 {
24+
permission = "offline_access Files.Read Files.Read.All Files.ReadWrite Files.ReadWrite.All"
25+
fmt.Printf("输入为空,已使用默认设置")
26+
fmt.Println()
27+
}
28+
err := OpenBrowser(BuildMsAuthorizeUrl(clientId, permission))
2129
if err != nil {
2230
fmt.Printf("启动浏览器时发生错误\r\n%s", err.Error())
31+
readLine()
32+
return
2333
}
2434
fmt.Println()
2535
clientCode := <-CodeCh
2636
if clientCode != nil {
27-
fmt.Printf("获取到code(%v)\r\n", len(*clientCode))
37+
fmt.Printf("获取到code(%v)", len(*clientCode))
38+
fmt.Println()
2839
} else {
2940
fmt.Println("获取code失败,请检查client_id和网络设置")
30-
_ = readLine()
41+
readLine()
3142
return
3243
}
3344
fmt.Println()
@@ -40,8 +51,10 @@ func main() {
4051
_ = readLine()
4152
return
4253
}
43-
fmt.Printf("获取到token(%v)\r\n", len(tokenData.AccessToken))
44-
fmt.Printf("获取到refresh-token(%v)\r\n", len(tokenData.RefreshToken))
54+
fmt.Printf("获取到token(%v)", len(tokenData.AccessToken))
55+
fmt.Println()
56+
fmt.Printf("获取到refresh-token(%v)", len(tokenData.RefreshToken))
57+
fmt.Println()
4558
saveData := TokenResult{
4659
ClientId: clientId,
4760
ClientCode: *clientCode,
@@ -69,12 +82,12 @@ func readLine() (str string) {
6982

7083
func initLog() {
7184
fmt.Println("Ciallo~(∠・ω< )⌒☆")
72-
fmt.Println("本工具将帮助你获取微软Graph的API的访问令牌,获取到的结果将保存到工具运行的目录下")
85+
fmt.Println("本工具将帮助你获取微软Graph的API的访问令牌,获取到的结果将保存到工具运行的目录下(默认将选择OneDriver相关权限)")
7386
fmt.Println()
74-
fmt.Println("请先保证使用本工具前已经在Microsoft Azure重创建了新的应用,并满足以下条件:")
75-
fmt.Println("1.并授予了offline_access Files.Read Files.Read.All Files.ReadWrite Files.ReadWrite.All权限")
76-
fmt.Println("2.重定向URL选择了(Web)类型,并设置值为(http://localhost:11451/auth)")
77-
fmt.Println("3.在证书和密码选项卡中创建并保存了机密值(Client Secret)")
87+
fmt.Println("请先保证使用本工具前已经在Microsoft Azure中创建了新的应用,并满足以下条件:")
88+
fmt.Println("1.重定向URL选择了(Web)类型,并设置值为(http://localhost:11451/auth)")
89+
fmt.Println("2.在证书和密码选项卡中创建并保存了机密值(Client Secret)")
90+
fmt.Println("如果需要使用OneDriver相关API(如各种网盘列表),请在API权限中授权(offline_access Files.Read Files.Read.All Files.ReadWrite Files.ReadWrite.All)")
7891
fmt.Println("请在确认以上条件后按回车继续")
7992
_ = readLine()
8093
}

util.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,15 @@ import (
1111
"strings"
1212
)
1313

14-
func BuildMsAuthorizeUrl(clientId string) string {
14+
func BuildMsAuthorizeUrl(clientId, permission string) string {
1515
u, _ := url.Parse("https://login.microsoftonline.com/common/oauth2/v2.0/authorize")
1616
urlQuery := u.Query()
1717
urlQuery.Set("client_id", clientId)
1818
urlQuery.Set("redirect_uri", "http://localhost:11451/auth")
1919
urlQuery.Set("response_type", "code")
20+
urlQuery.Set("scope", permission)
2021
u.RawQuery = urlQuery.Encode()
21-
return fmt.Sprintf("%s&scope=offline_access+Files.Read+Files.Read.All+Files.ReadWrite+Files.ReadWrite.All", u.String())
22+
return u.String()
2223
}
2324

2425
func MsTokenRequest(clientId, clientSecret, clientCode string) (*TokenResp, error) {

0 commit comments

Comments
 (0)