如何使用Postman登录Angular ASP.NET CORE应用获取访问Token
问题解决指南
1. 405错误的根源
你访问/connect/token返回405是因为这个接口仅接受POST请求,你之前用GET方式调用自然会返回方法不允许的错误。
2. 提前获取配置参数
你需要的所有默认参数都可以在项目根目录的appsettings.json里找到,脚手架默认生成的IdentityServer配置段如下:
"IdentityServer": { "Clients": { "你的项目名称": { "Profile": "IdentityServerSPA" } } }
不需要额外修改代码的前提下,默认参数值如下:
- 授权类型:选择
Authorization Code(授权码模式)即可,和内置Angular端用的模式完全一致 - 授权URL:
https://你项目运行的localhost地址/connect/authorize - 令牌URL:
https://你项目运行的localhost地址/connect/token - 客户端ID:就是你创建项目时输入的项目名称,和上面配置里的键名完全一致
- 回调URL:默认可以直接用Postman官方回调地址
https://oauth.pstmn.io/v1/callback,需要提前把这个地址加到IdentityServer客户端的允许跳转列表里 - 权限范围(Scope):填
openid profile 你的项目名称API,后缀API是脚手架默认生成的规则 - 客户端密钥:默认SPA客户端不需要填写,留空即可
注意:请确保你调用的地址用的是HTTPS,默认IdentityServer配置会拒绝HTTP请求,用HTTP地址调用会出现跨域或者授权失败的问题。如果你不知道项目运行的端口,可以查看
Properties/launchSettings.json文件里的配置。
3. Postman获取Token步骤
- 打开Postman,新建任意请求,切换到「Authorization」标签页
- 授权类型选择「OAuth 2.0」,点击右侧「Get New Access Token」按钮
- 在弹出的表单中按以下内容填写:
- Token Name:自定义名称即可,比如
测试Token - Grant Type:选择
Authorization Code - Callback URL:填
https://oauth.pstmn.io/v1/callback - Auth URL:填你项目的HTTPS授权地址,比如
https://localhost:5001/connect/authorize - Access Token URL:填
https://localhost:5001/connect/token - Client ID:填你的项目名称
- Scope:填
openid profile 你的项目名称API - 其余字段保持默认留空即可
- Token Name:自定义名称即可,比如
- 点击「Get New Access Token」按钮,会弹出登录页面,输入你已经注册好的账号密码完成登录和授权,就能拿到可用的Token
- 拿到Token后点击「Use Token」,后续所有请求就会自动带上这个Token完成身份校验
4. 免跳转密码模式配置(可选)
如果你不想每次获取Token都跳登录页,可以额外配置密码授权模式,只需要修改Startup.cs里的IdentityServer配置即可:
services.AddIdentityServer() .AddApiAuthorization<ApplicationUser, erp_colombiaDbContext>() // 新增密码验证支持 .AddResourceOwnerValidator<ResourceOwnerPasswordValidator<ApplicationUser>>() .AddInMemoryClients(new[] { new Client { ClientId = "postman_test", AllowedGrantTypes = GrantTypes.ResourceOwnerPassword, ClientSecrets = { new Secret("test123456".Sha256()) }, AllowedScopes = { "openid", "profile", "你的项目名称API" }, AccessTokenLifetime = 3600 } });
配置完成后Postman里Grant Type选择Password Credentials,填写ClientID为postman_test、Client Secret为test123456,再输入用户名和密码就能直接获取Token,不需要跳转登录页。
内容的提问来源于stack exchange,提问作者J.C
相关产品推荐
相关产品推荐

